xfs: create internal eofblocks structure with kuid_t types
PATCH v7 5/7 xfs: create internal eofblocks structure with kuid_t types
Have eofblocks ioctl convert uid_t to kuid_t into internal structure. Update internal filter matching to compare ids with kuid_t types.
Reviewed-by Brian Foster <[email protected]>
Signed-off-by Dwight Engen <[email protected]>
--- fs/xfs/xfs_fs.h | 2 +- fs/xfs/xfs_icache.c | 12 ++++++------ fs/xfs/xfs_icache.h | 43 +++++++++++++++++++++++++++++++++++++++++++ fs/xfs/xfs_ioctl.c | 18 ++++++------------ 4 files changed, 56 insertions(+), 19 deletions(-)
fs/xfs/xfs_fs.h +1 -1
@@ -344,7 +344,7 @@ typedef struct xfs_error_injection {* Speculative preallocation trimming. */ #define XFS_EOFBLOCKS_VERSION 1 -struct xfs_eofblocks { +struct xfs_fs_eofblocks {__u32 eof_version;__u32 eof_flags;uid_t eof_uid;
fs/xfs/xfs_icache.c +6 -6
@@ -619,7 +619,7 @@ restart:/* * Background scanning to trim post-EOF preallocated space. This is queued -* based on the 'background_prealloc_discard_period' tunable (5m by default). +* based on the 'speculative_prealloc_lifetime' tunable (5m by default). */ STATIC void xfs_queue_eofblocks(
@@ -1203,15 +1203,15 @@ xfs_inode_match_id( struct xfs_inode *ip, struct xfs_eofblocks *eofb) { -if (eofb->eof_flags &XFS_EOF_FLAGS_UID && - ip->i_d.di_uid != eofb->eof_uid) +if ((eofb->eof_flags &XFS_EOF_FLAGS_UID ) && + !uid_eq (VFS_I (ip)->i_uid, eofb->eof_uid))return 0 ; -if (eofb->eof_flags &XFS_EOF_FLAGS_GID && - ip->i_d.di_gid != eofb->eof_gid) +if ((eofb->eof_flags &XFS_EOF_FLAGS_GID ) && + !gid_eq (VFS_I (ip)->i_gid, eofb->eof_gid))return 0 ; -if (eofb->eof_flags &XFS_EOF_FLAGS_PRID && +if ((eofb->eof_flags &XFS_EOF_FLAGS_PRID ) &&xfs_get_projid (ip) != eofb->eof_prid)return 0 ;
fs/xfs/xfs_icache.h +43 -0
53 lines not on this page · raw message
fs/xfs/xfs_ioctl.c +6 -12
@@ -1610,23 +1610,17 @@ xfs_file_ioctl(return -error;case XFS_IOC_FREE_EOFBLOCKS : { -struct xfs_eofblocks eofb; +struct xfs_fs_eofblocks eofb; +struct xfs_eofblocks keofb;if (copy_from_user (&eofb, arg,sizeof (eofb)))return -XFS_ERROR (EFAULT ); -if (eofb.eof_version !=XFS_EOFBLOCKS_VERSION ) -return -XFS_ERROR (EINVAL ); - -if (eofb.eof_flags & ~XFS_EOF_FLAGS_VALID ) -return -XFS_ERROR (EINVAL ); - -if (memchr_inv (&eofb.pad32,0 ,sizeof (eofb.pad32)) || -memchr_inv (eofb.pad64,0 ,sizeof (eofb.pad64))) -return -XFS_ERROR (EINVAL ); + error =xfs_fs_eofblocks_from_user (&eofb, &keofb); +if (error) +return -error; - error =xfs_icache_free_eofblocks (mp, &eofb); -return -error; +return -xfs_icache_free_eofblocks (mp, &keofb); }default :
Signature · 6 lines
1.8.1.4 _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs
Quoted 5 lines · Dwight Engen
Have eofblocks ioctl convert
uid_ttokuid_tinto internal structure. Update internal filter matching to compare ids withkuid_ttypes.Reviewed-by Brian Foster <[email protected]>Signed-off-by Dwight Engen <[email protected]>
Looks good.
Reviewed-by Dave Chinner <[email protected]>
Signature · 7 lines
Dave Chinner [email protected] _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs
Quoted 6 lines · Dwight Engen
Have eofblocks ioctl convert
uid_ttokuid_tinto internal structure. Update internal filter matching to compare ids withkuid_ttypes.Reviewed-by Brian Foster <[email protected]>Signed-off-by Dwight Engen <[email protected]>---
Reviewed-by Gao feng <[email protected]>
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs