Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

userns: Convert btrfs to use kuid/kgid where appropriate

Cc: Chris Mason <chris.mason@fusionio.com>
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>

+11 -12
+4 -4
fs/btrfs/delayed-inode.c
··· 1715 1715 struct btrfs_inode_item *inode_item, 1716 1716 struct inode *inode) 1717 1717 { 1718 - btrfs_set_stack_inode_uid(inode_item, inode->i_uid); 1719 - btrfs_set_stack_inode_gid(inode_item, inode->i_gid); 1718 + btrfs_set_stack_inode_uid(inode_item, i_uid_read(inode)); 1719 + btrfs_set_stack_inode_gid(inode_item, i_gid_read(inode)); 1720 1720 btrfs_set_stack_inode_size(inode_item, BTRFS_I(inode)->disk_i_size); 1721 1721 btrfs_set_stack_inode_mode(inode_item, inode->i_mode); 1722 1722 btrfs_set_stack_inode_nlink(inode_item, inode->i_nlink); ··· 1764 1764 1765 1765 inode_item = &delayed_node->inode_item; 1766 1766 1767 - inode->i_uid = btrfs_stack_inode_uid(inode_item); 1768 - inode->i_gid = btrfs_stack_inode_gid(inode_item); 1767 + i_uid_write(inode, btrfs_stack_inode_uid(inode_item)); 1768 + i_gid_write(inode, btrfs_stack_inode_gid(inode_item)); 1769 1769 btrfs_i_size_write(inode, btrfs_stack_inode_size(inode_item)); 1770 1770 inode->i_mode = btrfs_stack_inode_mode(inode_item); 1771 1771 set_nlink(inode, btrfs_stack_inode_nlink(inode_item));
+4 -4
fs/btrfs/inode.c
··· 2570 2570 struct btrfs_inode_item); 2571 2571 inode->i_mode = btrfs_inode_mode(leaf, inode_item); 2572 2572 set_nlink(inode, btrfs_inode_nlink(leaf, inode_item)); 2573 - inode->i_uid = btrfs_inode_uid(leaf, inode_item); 2574 - inode->i_gid = btrfs_inode_gid(leaf, inode_item); 2573 + i_uid_write(inode, btrfs_inode_uid(leaf, inode_item)); 2574 + i_gid_write(inode, btrfs_inode_gid(leaf, inode_item)); 2575 2575 btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item)); 2576 2576 2577 2577 tspec = btrfs_inode_atime(inode_item); ··· 2649 2649 struct btrfs_inode_item *item, 2650 2650 struct inode *inode) 2651 2651 { 2652 - btrfs_set_inode_uid(leaf, item, inode->i_uid); 2653 - btrfs_set_inode_gid(leaf, item, inode->i_gid); 2652 + btrfs_set_inode_uid(leaf, item, i_uid_read(inode)); 2653 + btrfs_set_inode_gid(leaf, item, i_gid_read(inode)); 2654 2654 btrfs_set_inode_size(leaf, item, BTRFS_I(inode)->disk_i_size); 2655 2655 btrfs_set_inode_mode(leaf, item, inode->i_mode); 2656 2656 btrfs_set_inode_nlink(leaf, item, inode->i_nlink);
+3 -3
fs/btrfs/ioctl.c
··· 575 575 */ 576 576 static inline int btrfs_check_sticky(struct inode *dir, struct inode *inode) 577 577 { 578 - uid_t fsuid = current_fsuid(); 578 + kuid_t fsuid = current_fsuid(); 579 579 580 580 if (!(dir->i_mode & S_ISVTX)) 581 581 return 0; 582 - if (inode->i_uid == fsuid) 582 + if (uid_eq(inode->i_uid, fsuid)) 583 583 return 0; 584 - if (dir->i_uid == fsuid) 584 + if (uid_eq(dir->i_uid, fsuid)) 585 585 return 0; 586 586 return !capable(CAP_FOWNER); 587 587 }
-1
init/Kconfig
··· 930 930 depends on 9P_FS = n 931 931 depends on AFS_FS = n 932 932 depends on AUTOFS4_FS = n 933 - depends on BTRFS_FS = n 934 933 depends on CEPH_FS = n 935 934 depends on CIFS = n 936 935 depends on CODA_FS = n