aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoropeneuler-ci-bot <george@openeuler.sh>2024-04-09 01:14:28 +0000
committerGitee <noreply@gitee.com>2024-04-09 01:14:28 +0000
commit87e7e0e0c3455ef6d257e0bc01fd9046b7f3e50c (patch)
treef1d7cd49feb2247c49d1df9ff0459f63e524439d
parentfdf52a7d6b5fca5b90338576a43a90ed5978e89d (diff)
parentde0e956ba0cba7846f9d29d522216d2c69527f12 (diff)
downloadopenEuler-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.c3
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;