Use xfs_inode_clean() in more places
PATCH 1/1 Use xfs_inode_clean() in more places
Use xfs_inode_clean() in more places.
Version 2:
- remove eye-hurting STATIC_INLINE
- make check less verbose
Signed-off-by Dave Chinner <[email protected]>
--- fs/xfs/xfs_inode.c | 27 +++++---------------------- fs/xfs/xfs_inode_item.h | 8 ++++++++ fs/xfs/xfs_vnodeops.c | 4 +--- 3 files changed, 14 insertions(+), 25 deletions(-)
fs/xfs/xfs_inode.c +5 -22
@@ -2118,13 +2118,6 @@ xfs_iunlink_remove(return 0 ; } -STATIC_INLINE int xfs_inode_clean(xfs_inode_t *ip) -{ -return (((ip->i_itemp ==NULL ) || - !(ip->i_itemp->ili_format.ilf_fields &XFS_ILOG_ALL )) && - (ip->i_update_core ==0 )); -} - STATIC void xfs_ifree_cluster( xfs_inode_t *free_ip,
@@ -3004,7 +2997,6 @@ xfs_iflush_cluster(int ilist_size;xfs_inode_t *ilist;xfs_inode_t *iq; -xfs_inode_log_item_t *iip;int nr_found;int clcount =0 ;int bufwasdelwri;
@@ -3038,13 +3030,8 @@ xfs_iflush_cluster(* is a candidate for flushing. These checks will be repeated * later after the appropriate locks are acquired. */ - iip = iq->i_itemp; -if ((iq->i_update_core ==0 ) && - ((iip ==NULL ) || - !(iip->ili_format.ilf_fields &XFS_ILOG_ALL )) && -xfs_ipincount (iq) ==0 ) { +if (xfs_inode_clean (iq) &&xfs_ipincount (iq) ==0 )continue ; - }/* * Try to get locks. If any are unavailable or it is pinned,
@@ -3067,10 +3054,8 @@ xfs_iflush_cluster(* arriving here means that this inode can be flushed. First * re-check that it's dirty before flushing. */ - iip = iq->i_itemp; -if ((iq->i_update_core !=0 ) || ((iip !=NULL ) && - (iip->ili_format.ilf_fields &XFS_ILOG_ALL ))) { -int error; +if (!xfs_inode_clean (iq)) { +int error; error =xfs_iflush_int (iq, bp);if (error) {xfs_iunlock (iq,XFS_ILOCK_SHARED );
@@ -3174,8 +3159,7 @@ xfs_iflush(* If the inode isn't dirty, then just release the inode * flush lock and do nothing. */ -if ((ip->i_update_core ==0 ) && - ((iip ==NULL ) || !(iip->ili_format.ilf_fields &XFS_ILOG_ALL ))) { +if (xfs_inode_clean (ip)) {ASSERT ((iip !=NULL ) ? !(iip->ili_item.li_flags &XFS_LI_IN_AIL ) :1 );xfs_ifunlock (ip);
@@ -3341,8 +3325,7 @@ xfs_iflush_int(* If the inode isn't dirty, then just release the inode * flush lock and do nothing. */ -if ((ip->i_update_core ==0 ) && - ((iip ==NULL ) || !(iip->ili_format.ilf_fields &XFS_ILOG_ALL ))) { +if (xfs_inode_clean (ip)) {xfs_ifunlock (ip);return 0 ; }
fs/xfs/xfs_vnodeops.c +1 -3
@@ -3490,7 +3490,6 @@ xfs_inode_flush( int flags) {xfs_mount_t *mp = ip->i_mount; -xfs_inode_log_item_t *iip = ip->i_itemp;int error =0 ;if (XFS_FORCED_SHUTDOWN (mp))
@@ -3500,8 +3499,7 @@ xfs_inode_flush(* Bypass inodes which have already been cleaned by * the inode flush clustering code inside xfs_iflush */ -if ((ip->i_update_core ==0 ) && - ((iip ==NULL ) || !(iip->ili_format.ilf_fields &XFS_ILOG_ALL ))) +if (xfs_inode_clean (ip))return 0 ;/*
fs/xfs/xfs_inode_item.h +8 -0
@@ -168,6 +168,14 @@ static inline int xfs_ilog_fext(int w)return (w ==XFS_DATA_FORK ?XFS_ILOG_DEXT :XFS_ILOG_AEXT ); } +static inline int xfs_inode_clean (xfs_inode_t *ip) +{ +return (!ip->i_itemp || + !(ip->i_itemp->ili_format.ilf_fields &XFS_ILOG_ALL )) && + !ip->i_update_core; +} + +#ifdef __KERNEL__extern void xfs_inode_item_init (struct xfs_inode *,struct xfs_mount *);
ping?
Quoted 128 lines · David Chinner
Use
xfs_inode_clean()in more places.Version 2:
- remove eye-hurtingSTATIC_INLINE
- make check less verboseSigned-off-by Dave Chinner <[email protected]>--- fs/xfs/xfs_inode.c | 27 +++++---------------------- fs/xfs/xfs_inode_item.h | 8 ++++++++ fs/xfs/xfs_vnodeops.c | 4 +--- 3 files changed, 14 insertions(+), 25 deletions(-)Index:
2.6.x-xfs-new/fs/xfs/xfs_inode.c
===================================================================fs/xfs/xfs_inode.c +5
-22@@ -2118,13 +2118,6 @@ xfs_iunlink_remove(return 0 ; } -STATIC_INLINE int xfs_inode_clean(xfs_inode_t *ip) -{ -return (((ip->i_itemp ==NULL ) || - !(ip->i_itemp->ili_format.ilf_fields &XFS_ILOG_ALL )) && - (ip->i_update_core ==0 )); -} - STATIC void xfs_ifree_cluster( xfs_inode_t *free_ip,@@ -3004,7 +2997,6 @@ xfs_iflush_cluster(int ilist_size;xfs_inode_t *ilist;xfs_inode_t *iq; -xfs_inode_log_item_t *iip;int nr_found;int clcount =0 ;int bufwasdelwri;@@ -3038,13 +3030,8 @@ xfs_iflush_cluster(* is a candidate for flushing. These checks will be repeated * later after the appropriate locks are acquired. */ - iip = iq->i_itemp; -if ((iq->i_update_core ==0 ) && - ((iip ==NULL ) || - !(iip->ili_format.ilf_fields &XFS_ILOG_ALL )) && -xfs_ipincount (iq) ==0 ) { +if (xfs_inode_clean (iq) &&xfs_ipincount (iq) ==0 )continue ; - }/* * Try to get locks. If any are unavailable or it is pinned, @@ -3067,10 +3054,8 @@ xfs_iflush_cluster(* arriving here means that this inode can be flushed. First * re-check that it's dirty before flushing. */ - iip = iq->i_itemp; -if ((iq->i_update_core !=0 ) || ((iip !=NULL ) && - (iip->ili_format.ilf_fields &XFS_ILOG_ALL ))) { -int error; +if (!xfs_inode_clean (iq)) { +int error; error =xfs_iflush_int (iq, bp);if (error) {xfs_iunlock (iq,XFS_ILOCK_SHARED );@@ -3174,8 +3159,7 @@ xfs_iflush(* If the inode isn't dirty, then just release the inode * flush lock and do nothing. */ -if ((ip->i_update_core ==0 ) && - ((iip ==NULL ) || !(iip->ili_format.ilf_fields &XFS_ILOG_ALL ))) { +if (xfs_inode_clean (ip)) {ASSERT ((iip !=NULL ) ? !(iip->ili_item.li_flags &XFS_LI_IN_AIL ) :1 );xfs_ifunlock (ip);@@ -3341,8 +3325,7 @@ xfs_iflush_int(* If the inode isn't dirty, then just release the inode * flush lock and do nothing. */ -if ((ip->i_update_core ==0 ) && - ((iip ==NULL ) || !(iip->ili_format.ilf_fields &XFS_ILOG_ALL ))) { +if (xfs_inode_clean (ip)) {xfs_ifunlock (ip);return 0 ; }Index:
2.6.x-xfs-new/fs/xfs/xfs_vnodeops.c
===================================================================fs/xfs/xfs_vnodeops.c +1
-3@@ -3490,7 +3490,6 @@ xfs_inode_flush( int flags) {xfs_mount_t *mp = ip->i_mount; -xfs_inode_log_item_t *iip = ip->i_itemp;int error =0 ;if (XFS_FORCED_SHUTDOWN (mp))@@ -3500,8 +3499,7 @@ xfs_inode_flush(* Bypass inodes which have already been cleaned by * the inode flush clustering code inside xfs_iflush */ -if ((ip->i_update_core ==0 ) && - ((iip ==NULL ) || !(iip->ili_format.ilf_fields &XFS_ILOG_ALL ))) +if (xfs_inode_clean (ip))return 0 ;/* Index:
2.6.x-xfs-new/fs/xfs/xfs_inode_item.h
===================================================================fs/xfs/xfs_inode_item.h +8
-0@@ -168,6 +168,14 @@ static inline int xfs_ilog_fext(int w)return (w ==XFS_DATA_FORK ?XFS_ILOG_DEXT :XFS_ILOG_AEXT ); } +static inline int xfs_inode_clean (xfs_inode_t *ip) +{ +return (!ip->i_itemp || + !(ip->i_itemp->ili_format.ilf_fields &XFS_ILOG_ALL )) && + !ip->i_update_core; +} + +#ifdef __KERNEL__extern void xfs_inode_item_init (struct xfs_inode *,struct xfs_mount *);
Signature · 3 lines
Dave Chinner Principal Engineer SGI Australian Software Group
Quoted 1 line · David Chinner
ping?
Looks good.