Changeset View
Changeset View
Standalone View
Standalone View
sys/ufs/ffs/ffs_vfsops.c
Show First 20 Lines • Show All 1,855 Lines • ▼ Show 20 Lines | if ((error = vget(vp, lockreq)) != 0) { | ||||
MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); | MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); | ||||
goto loop; | goto loop; | ||||
} | } | ||||
continue; | continue; | ||||
} | } | ||||
#ifdef QUOTA | #ifdef QUOTA | ||||
qsyncvp(vp); | qsyncvp(vp); | ||||
#endif | #endif | ||||
if ((error = ffs_syncvnode(vp, waitfor, 0)) != 0) | for (;;) { | ||||
error = ffs_syncvnode(vp, waitfor, 0); | |||||
if (error == ERELOOKUP) | |||||
continue; | |||||
if (error != 0) | |||||
allerror = error; | allerror = error; | ||||
break; | |||||
} | |||||
vput(vp); | vput(vp); | ||||
} | } | ||||
/* | /* | ||||
* Force stale filesystem control information to be flushed. | * Force stale filesystem control information to be flushed. | ||||
*/ | */ | ||||
if (waitfor == MNT_WAIT || rebooting) { | if (waitfor == MNT_WAIT || rebooting) { | ||||
if ((error = softdep_flushworklist(ump->um_mountp, &count, td))) | if ((error = softdep_flushworklist(ump->um_mountp, &count, td))) | ||||
allerror = error; | allerror = error; | ||||
▲ Show 20 Lines • Show All 122 Lines • ▼ Show 20 Lines | ffs_vgetf(mp, ino, flags, vpp, ffs_flags) | ||||
vp->v_bufobj.bo_bsize = fs->fs_bsize; | vp->v_bufobj.bo_bsize = fs->fs_bsize; | ||||
ip->i_vnode = vp; | ip->i_vnode = vp; | ||||
ip->i_ump = ump; | ip->i_ump = ump; | ||||
ip->i_number = ino; | ip->i_number = ino; | ||||
ip->i_ea_refs = 0; | ip->i_ea_refs = 0; | ||||
ip->i_nextclustercg = -1; | ip->i_nextclustercg = -1; | ||||
ip->i_flag = fs->fs_magic == FS_UFS1_MAGIC ? 0 : IN_UFS2; | ip->i_flag = fs->fs_magic == FS_UFS1_MAGIC ? 0 : IN_UFS2; | ||||
ip->i_mode = 0; /* ensure error cases below throw away vnode */ | ip->i_mode = 0; /* ensure error cases below throw away vnode */ | ||||
#ifdef DIAGNOSTIC | |||||
ufs_init_trackers(ip); | |||||
#endif | |||||
#ifdef QUOTA | #ifdef QUOTA | ||||
{ | { | ||||
int i; | int i; | ||||
for (i = 0; i < MAXQUOTAS; i++) | for (i = 0; i < MAXQUOTAS; i++) | ||||
ip->i_dquot[i] = NODQUOT; | ip->i_dquot[i] = NODQUOT; | ||||
} | } | ||||
#endif | #endif | ||||
▲ Show 20 Lines • Show All 667 Lines • Show Last 20 Lines |