Diff for /xfs-linux/xfs_vnodeops.c between versions 1.701 and 1.702

version 1.701, 2007/06/29 06:13:25 version 1.702, 2007/07/09 06:12:03
Line 51 Line 51
 #include "xfs_refcache.h"  #include "xfs_refcache.h"
 #include "xfs_trans_space.h"  #include "xfs_trans_space.h"
 #include "xfs_log_priv.h"  #include "xfs_log_priv.h"
   #include "xfs_filestream.h"
   
 STATIC int  STATIC int
 xfs_open(  xfs_open(
Line 783  xfs_setattr( Line 784  xfs_setattr(
                                 di_flags |= XFS_DIFLAG_PROJINHERIT;                                  di_flags |= XFS_DIFLAG_PROJINHERIT;
                         if (vap->va_xflags & XFS_XFLAG_NODEFRAG)                          if (vap->va_xflags & XFS_XFLAG_NODEFRAG)
                                 di_flags |= XFS_DIFLAG_NODEFRAG;                                  di_flags |= XFS_DIFLAG_NODEFRAG;
                           if (vap->va_xflags & XFS_XFLAG_FILESTREAM)
                                   di_flags |= XFS_DIFLAG_FILESTREAM;
                         if ((ip->i_d.di_mode & S_IFMT) == S_IFDIR) {                          if ((ip->i_d.di_mode & S_IFMT) == S_IFDIR) {
                                 if (vap->va_xflags & XFS_XFLAG_RTINHERIT)                                  if (vap->va_xflags & XFS_XFLAG_RTINHERIT)
                                         di_flags |= XFS_DIFLAG_RTINHERIT;                                          di_flags |= XFS_DIFLAG_RTINHERIT;
Line 1536  xfs_release( Line 1539  xfs_release(
         if (vp->v_vfsp->vfs_flag & VFS_RDONLY)          if (vp->v_vfsp->vfs_flag & VFS_RDONLY)
                 return 0;                  return 0;
   
         if (!XFS_FORCED_SHUTDOWN(ip->i_mount)) {          if (!XFS_FORCED_SHUTDOWN(mp)) {
                   /*
                    * If we are using filestreams, and we have an unlinked
                    * file that we are processing the last close on, then nothing
                    * will be able to reopen and write to this file. Purge this
                    * inode from the filestreams cache so that it doesn't delay
                    * teardown of the inode.
                    */
                   if ((ip->i_d.di_nlink == 0) && xfs_inode_is_filestream(ip))
                           xfs_filestream_deassociate(ip);
   
                 /*                  /*
                  * If we previously truncated this file and removed old data                   * If we previously truncated this file and removed old data
                  * in the process, we want to initiate "early" writeout on                   * in the process, we want to initiate "early" writeout on
Line 1551  xfs_release( Line 1564  xfs_release(
                         bhv_vop_flush_pages(vp, 0, -1, XFS_B_ASYNC, FI_NONE);                          bhv_vop_flush_pages(vp, 0, -1, XFS_B_ASYNC, FI_NONE);
         }          }
   
   
 #ifdef HAVE_REFCACHE  #ifdef HAVE_REFCACHE
         /* If we are in the NFS reference cache then don't do this now */          /* If we are in the NFS reference cache then don't do this now */
         if (ip->i_refcache)          if (ip->i_refcache)
Line 2541  xfs_remove( Line 2553  xfs_remove(
          */           */
         xfs_refcache_purge_ip(ip);          xfs_refcache_purge_ip(ip);
   
           /*
            * If we are using filestreams, kill the stream association.
            * If the file is still open it may get a new one but that
            * will get killed on last close in xfs_close() so we don't
            * have to worry about that.
            */
           if (link_zero && xfs_inode_is_filestream(ip))
                   xfs_filestream_deassociate(ip);
   
         vn_trace_exit(XFS_ITOV(ip), __FUNCTION__, (inst_t *)__return_address);          vn_trace_exit(XFS_ITOV(ip), __FUNCTION__, (inst_t *)__return_address);
   
         /*          /*

Removed from v.1.701  
changed lines
  Added in v.1.702


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