diff options
author | openeuler-ci-bot <george@openeuler.sh> | 2024-04-09 01:14:28 +0000 |
---|---|---|
committer | Gitee <noreply@gitee.com> | 2024-04-09 01:14:28 +0000 |
commit | 87e7e0e0c3455ef6d257e0bc01fd9046b7f3e50c (patch) | |
tree | f1d7cd49feb2247c49d1df9ff0459f63e524439d | |
parent | fdf52a7d6b5fca5b90338576a43a90ed5978e89d (diff) | |
parent | de0e956ba0cba7846f9d29d522216d2c69527f12 (diff) | |
download | openEuler-kernel-87e7e0e0c3455ef6d257e0bc01fd9046b7f3e50c.tar.gz |
!5766 [sync] PR-5642: btrfs: don't abort filesystem when attempting to snapshot deleted subvolume
Merge Pull Request from: @openeuler-sync-bot
Origin pull request:
https://gitee.com/openeuler/kernel/pulls/5642
PR sync from: Long Li <leo.lilong@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/LASGUEBH3GUCEGCE4KSLAVOWJCDHJO3L/
https://gitee.com/src-openeuler/kernel/issues/I9BV23
Link:https://gitee.com/openeuler/kernel/pulls/5766
Reviewed-by: Jialin Zhang <zhangjialin11@huawei.com>
Signed-off-by: Jialin Zhang <zhangjialin11@huawei.com>
-rw-r--r-- | fs/btrfs/ioctl.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index dd51585c316115..b7792b340f6cc3 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -798,6 +798,9 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir, struct btrfs_trans_handle *trans; int ret; + if (btrfs_root_refs(&root->root_item) == 0) + return -ENOENT; + if (!test_bit(BTRFS_ROOT_SHAREABLE, &root->state)) return -EINVAL; |