[BACK]Return to ffs_vnops.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / ufs / ffs

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/ufs/ffs/ffs_vnops.c between version 1.46 and 1.47

version 1.46, 2001/11/08 04:52:31 version 1.47, 2001/12/27 01:44:59
Line 332  ffs_full_fsync(v)
Line 332  ffs_full_fsync(v)
         } */ *ap = v;          } */ *ap = v;
         struct vnode *vp = ap->a_vp;          struct vnode *vp = ap->a_vp;
         struct buf *bp, *nbp;          struct buf *bp, *nbp;
         int s, error, passes, skipmeta;          int s, error, passes, skipmeta, inodedeps_only, waitfor;
   
         if (vp->v_type == VBLK &&          if (vp->v_type == VBLK &&
             vp->v_specmountpoint != NULL &&              vp->v_specmountpoint != NULL &&
             (vp->v_specmountpoint->mnt_flag & MNT_SOFTDEP))              (vp->v_specmountpoint->mnt_flag & MNT_SOFTDEP))
                 softdep_fsync_mountdev(vp);                  softdep_fsync_mountdev(vp);
   
           inodedeps_only = DOINGSOFTDEP(vp) && (ap->a_flags & FSYNC_RECLAIM)
               && vp->v_uobj.uo_npages == NULL && LIST_EMPTY(&vp->v_dirtyblkhd);
   
         /*          /*
          * Flush all dirty data associated with a vnode.           * Flush all dirty data associated with a vnode.
          */           */
Line 430  loop:
Line 433  loop:
                 }                  }
         }          }
         splx(s);          splx(s);
         return (VOP_UPDATE(vp, NULL, NULL,  
             (ap->a_flags & FSYNC_WAIT) ? UPDATE_WAIT : 0));          if (inodedeps_only)
                   waitfor = 0;
           else
                   waitfor = (ap->a_flags & FSYNC_WAIT) ? UPDATE_WAIT : 0;
           return (VOP_UPDATE(vp, NULL, NULL, waitfor));
 }  }
   
 /*  /*

Legend:
Removed from v.1.46  
changed lines
  Added in v.1.47

CVSweb <webmaster@jp.NetBSD.org>