Btrfs: deny sys_link across subvolumes.
I rebased Christian Parpart's patch to deny hard link across subvolumes. Original patch modifies also btrfs_rename, but I excluded it because we can move across subvolumes now and it make no problem. ----------------- Hard link across subvolumes should not allowed in Btrfs. btrfs_link checks root of 'to' directory is same as root of 'from' file. If not same, btrfs_link returns -EPERM. Signed-off-by: TARUISI Hiroaki <taruishi.hiroak@jp.fujitsu.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
a7a3f7cadd
commit
4a8be425a8
|
@ -4462,6 +4462,10 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
|
||||||
if (inode->i_nlink == 0)
|
if (inode->i_nlink == 0)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
|
||||||
|
/* do not allow sys_link's with other subvols of the same device */
|
||||||
|
if (root->objectid != BTRFS_I(inode)->root->objectid)
|
||||||
|
return -EPERM;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 1 item for inode ref
|
* 1 item for inode ref
|
||||||
* 2 items for dir items
|
* 2 items for dir items
|
||||||
|
|
Loading…
Reference in New Issue