diff options
author | Brian Behlendorf <[email protected]> | 2011-02-17 14:17:44 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2011-02-17 14:23:48 -0800 |
commit | 037849f854c511d86e3564ed7000e6c6472d6f70 (patch) | |
tree | b331754d671c4af80ec696fbee59b7ab717f5af7 | |
parent | efd1832bc615a4e32259e31d1c7ff0af14f5c1b2 (diff) |
Use provided uid/gid for setattr
When changing the uid/gid of a file via zfs_setattr() use the
Posix id passed in iattr->ia_uid/gid. While the zfs_fuid_create()
code already had the fuid support disabled for Linux it was
returning the uid/gid from the credential. With this change
the 'chown' command which relies on setxattr is now working
properly.
Also remove a little stray white space which was in front of
zfs_update_inode() call and the end of zfs_setattr().
-rw-r--r-- | module/zfs/zfs_fuid.c | 8 | ||||
-rw-r--r-- | module/zfs/zfs_vnops.c | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/module/zfs/zfs_fuid.c b/module/zfs/zfs_fuid.c index f1e071fc7..ca03373c7 100644 --- a/module/zfs/zfs_fuid.c +++ b/module/zfs/zfs_fuid.c @@ -639,10 +639,10 @@ zfs_fuid_create(zfs_sb_t *zsb, uint64_t id, cred_t *cr, } return (FUID_ENCODE(idx, rid)); #else - if (type == ZFS_OWNER) - return crgetuid(cr); - else - return crgetgid(cr); + /* + * The Linux port only supports POSIX IDs, use the passed id. + */ + return (id); #endif } diff --git a/module/zfs/zfs_vnops.c b/module/zfs/zfs_vnops.c index fcc85b8a0..b20e3b2c3 100644 --- a/module/zfs/zfs_vnops.c +++ b/module/zfs/zfs_vnops.c @@ -2575,7 +2575,7 @@ out: } else { err2 = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx); dmu_tx_commit(tx); - zfs_inode_update(zp); + zfs_inode_update(zp); } out2: |