diff options
-rw-r--r-- | fs/btrfs/inode.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 19fcde289dd9..01c5f8b5a34e 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -5055,6 +5055,9 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
5055 | u64 root_objectid; | 5055 | u64 root_objectid; |
5056 | int ret; | 5056 | int ret; |
5057 | 5057 | ||
5058 | if (new_dir->i_ino == BTRFS_EMPTY_SUBVOL_DIR_OBJECTID) | ||
5059 | return -EPERM; | ||
5060 | |||
5058 | /* we only allow rename subvolume link between subvolumes */ | 5061 | /* we only allow rename subvolume link between subvolumes */ |
5059 | if (old_inode->i_ino != BTRFS_FIRST_FREE_OBJECTID && root != dest) | 5062 | if (old_inode->i_ino != BTRFS_FIRST_FREE_OBJECTID && root != dest) |
5060 | return -EXDEV; | 5063 | return -EXDEV; |