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().
}
return (FUID_ENCODE(idx, rid));
#else
}
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);
} else {
err2 = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx);
dmu_tx_commit(tx);
} else {
err2 = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx);
dmu_tx_commit(tx);