Diff for /xfs-linux/xfs_inode.c between versions 1.452 and 1.453

version 1.452, 2006/09/14 03:48:58 version 1.453, 2006/11/07 14:39:38
Line 2193  xfs_ifree_cluster( Line 2193  xfs_ifree_cluster(
                         /* Inode not in memory or we found it already,                          /* Inode not in memory or we found it already,
                          * nothing to do                           * nothing to do
                          */                           */
                         if (!ip || (ip->i_flags & XFS_ISTALE)) {                          if (!ip || xfs_iflags_test(ip, XFS_ISTALE)) {
                                 read_unlock(&ih->ih_lock);                                  read_unlock(&ih->ih_lock);
                                 continue;                                  continue;
                         }                          }
Line 2215  xfs_ifree_cluster( Line 2215  xfs_ifree_cluster(
   
                         if (ip == free_ip) {                          if (ip == free_ip) {
                                 if (xfs_iflock_nowait(ip)) {                                  if (xfs_iflock_nowait(ip)) {
                                         spin_lock(&ip->i_flags_lock);                                          xfs_iflags_set(ip, XFS_ISTALE);
                                         ip->i_flags |= XFS_ISTALE;  
                                         spin_unlock(&ip->i_flags_lock);  
   
                                         if (xfs_inode_clean(ip)) {                                          if (xfs_inode_clean(ip)) {
                                                 xfs_ifunlock(ip);                                                  xfs_ifunlock(ip);
                                         } else {                                          } else {
Line 2231  xfs_ifree_cluster( Line 2228  xfs_ifree_cluster(
   
                         if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL)) {                          if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL)) {
                                 if (xfs_iflock_nowait(ip)) {                                  if (xfs_iflock_nowait(ip)) {
                                         spin_lock(&ip->i_flags_lock);                                          xfs_iflags_set(ip, XFS_ISTALE);
                                         ip->i_flags |= XFS_ISTALE;  
                                         spin_unlock(&ip->i_flags_lock);  
   
                                         if (xfs_inode_clean(ip)) {                                          if (xfs_inode_clean(ip)) {
                                                 xfs_ifunlock(ip);                                                  xfs_ifunlock(ip);
Line 2263  xfs_ifree_cluster( Line 2258  xfs_ifree_cluster(
                                 AIL_LOCK(mp,s);                                  AIL_LOCK(mp,s);
                                 iip->ili_flush_lsn = iip->ili_item.li_lsn;                                  iip->ili_flush_lsn = iip->ili_item.li_lsn;
                                 AIL_UNLOCK(mp, s);                                  AIL_UNLOCK(mp, s);
                                 spin_lock(&iip->ili_inode->i_flags_lock);                                  xfs_iflags_set(ip, XFS_ISTALE);
                                 iip->ili_inode->i_flags |= XFS_ISTALE;  
                                 spin_unlock(&iip->ili_inode->i_flags_lock);  
                                 pre_flushed++;                                  pre_flushed++;
                         }                          }
                         lip = lip->li_bio_list;                          lip = lip->li_bio_list;
Line 2764  xfs_iunpin( Line 2757  xfs_iunpin(
                 struct inode *inode = NULL;                  struct inode *inode = NULL;
   
                 spin_lock(&ip->i_flags_lock);                  spin_lock(&ip->i_flags_lock);
                 if (!(ip->i_flags & (XFS_IRECLAIM|XFS_IRECLAIMABLE))) {                  if (!__xfs_iflags_test(ip, XFS_IRECLAIM|XFS_IRECLAIMABLE)) {
                         bhv_vnode_t     *vp = XFS_ITOV_NULL(ip);                          bhv_vnode_t     *vp = XFS_ITOV_NULL(ip);
   
                         /* make sync come back and flush this inode */                          /* make sync come back and flush this inode */

Removed from v.1.452  
changed lines
  Added in v.1.453


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>