Diff for /xfs-linux/xfs_iget.c between versions 1.223 and 1.224

version 1.223, 2006/11/07 14:39:38 version 1.224, 2006/11/07 14:40:26
Line 237  again: Line 237  again:
   
                                         goto again;                                          goto again;
                                 }                                  }
                                   ASSERT(xfs_iflags_test(ip, XFS_IRECLAIMABLE));
   
                                   /*
                                    * If lookup is racing with unlink, then we
                                    * should return an error immediately so we
                                    * don't remove it from the reclaim list and
                                    * potentially leak the inode.
                                    */
                                   if ((ip->i_d.di_mode == 0) &&
                                       !(flags & XFS_IGET_CREATE)) {
                                           read_unlock(&ih->ih_lock);
                                           return ENOENT;
                                   }
   
                                   /*
                                    * There may be transactions sitting in the
                                    * incore log buffers or being flushed to disk
                                    * at this time.  We can't clear the
                                    * XFS_IRECLAIMABLE flag until these
                                    * transactions have hit the disk, otherwise we
                                    * will void the guarantee the flag provides
                                    * xfs_iunpin()
                                    */
                                   if (xfs_ipincount(ip)) {
                                           read_unlock(&ih->ih_lock);
                                           xfs_log_force(mp, 0,
                                                   XFS_LOG_FORCE|XFS_LOG_SYNC);
                                           XFS_STATS_INC(xs_ig_frecycle);
                                           goto again;
                                   }
   
                                 vn_trace_exit(vp, "xfs_iget.alloc",                                  vn_trace_exit(vp, "xfs_iget.alloc",
                                         (inst_t *)__return_address);                                          (inst_t *)__return_address);

Removed from v.1.223  
changed lines
  Added in v.1.224


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