Deleted Added
full compact
ext2_vnops.c (38292) ext2_vnops.c (40790)
1/*
2 * modified for EXT2FS support in Lites 1.1
3 *
4 * Aug 1995, Godmar Back (gback@cs.utah.edu)
5 * University of Utah, Department of Computer Science
6 */
7/*
8 * Copyright (c) 1982, 1986, 1989, 1993

--- 183 unchanged lines hidden (view full) ---

192
193 /*
194 * Flush all dirty buffers associated with a vnode.
195 */
196 ext2_discard_prealloc(VTOI(vp));
197
198loop:
199 s = splbio();
1/*
2 * modified for EXT2FS support in Lites 1.1
3 *
4 * Aug 1995, Godmar Back (gback@cs.utah.edu)
5 * University of Utah, Department of Computer Science
6 */
7/*
8 * Copyright (c) 1982, 1986, 1989, 1993

--- 183 unchanged lines hidden (view full) ---

192
193 /*
194 * Flush all dirty buffers associated with a vnode.
195 */
196 ext2_discard_prealloc(VTOI(vp));
197
198loop:
199 s = splbio();
200 for (bp = vp->v_dirtyblkhd.lh_first; bp; bp = nbp) {
201 nbp = bp->b_vnbufs.le_next;
200 for (bp = TAILQ_FIRST(&vp->v_dirtyblkhd); bp; bp = nbp) {
201 nbp = TAILQ_NEXT(bp, b_vnbufs);
202 if ((bp->b_flags & B_BUSY))
203 continue;
204 if ((bp->b_flags & B_DELWRI) == 0)
205 panic("ext2_fsync: not dirty");
206 bremfree(bp);
207 bp->b_flags |= B_BUSY;
208 splx(s);
209 /*

--- 7 unchanged lines hidden (view full) ---

217 goto loop;
218 }
219 if (ap->a_waitfor == MNT_WAIT) {
220 while (vp->v_numoutput) {
221 vp->v_flag |= VBWAIT;
222 tsleep(&vp->v_numoutput, PRIBIO + 1, "e2fsyn", 0);
223 }
224#if DIAGNOSTIC
202 if ((bp->b_flags & B_BUSY))
203 continue;
204 if ((bp->b_flags & B_DELWRI) == 0)
205 panic("ext2_fsync: not dirty");
206 bremfree(bp);
207 bp->b_flags |= B_BUSY;
208 splx(s);
209 /*

--- 7 unchanged lines hidden (view full) ---

217 goto loop;
218 }
219 if (ap->a_waitfor == MNT_WAIT) {
220 while (vp->v_numoutput) {
221 vp->v_flag |= VBWAIT;
222 tsleep(&vp->v_numoutput, PRIBIO + 1, "e2fsyn", 0);
223 }
224#if DIAGNOSTIC
225 if (vp->v_dirtyblkhd.lh_first) {
225 if (!TAILQ_EMPTY(&vp->v_dirtyblkhd)) {
226 vprint("ext2_fsync: dirty", vp);
227 goto loop;
228 }
229#endif
230 }
231 splx(s);
232 getmicrotime(&tv);
233 return (UFS_UPDATE(ap->a_vp, &tv, &tv, ap->a_waitfor == MNT_WAIT));

--- 991 unchanged lines hidden ---
226 vprint("ext2_fsync: dirty", vp);
227 goto loop;
228 }
229#endif
230 }
231 splx(s);
232 getmicrotime(&tv);
233 return (UFS_UPDATE(ap->a_vp, &tv, &tv, ap->a_waitfor == MNT_WAIT));

--- 991 unchanged lines hidden ---