Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/fuse/fuse_io.c
Show First 20 Lines • Show All 1,095 Lines • ▼ Show 20 Lines | if (p != NULL) { | ||||
error = EINTR; | error = EINTR; | ||||
PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
} | } | ||||
if (error == EINTR) | if (error == EINTR) | ||||
return EINTR; | return EINTR; | ||||
} | } | ||||
fvdat->flag |= FN_FLUSHINPROG; | fvdat->flag |= FN_FLUSHINPROG; | ||||
if (vp->v_bufobj.bo_object != NULL) { | if (vp->v_object != NULL) { | ||||
VM_OBJECT_WLOCK(vp->v_bufobj.bo_object); | VM_OBJECT_WLOCK(vp->v_object); | ||||
vm_object_page_clean(vp->v_bufobj.bo_object, 0, 0, OBJPC_SYNC); | vm_object_page_clean(vp->v_object, 0, 0, OBJPC_SYNC); | ||||
VM_OBJECT_WUNLOCK(vp->v_bufobj.bo_object); | VM_OBJECT_WUNLOCK(vp->v_object); | ||||
} | } | ||||
error = vinvalbuf(vp, V_SAVE, PCATCH, 0); | error = vinvalbuf(vp, V_SAVE, PCATCH, 0); | ||||
while (error) { | while (error) { | ||||
if (error == ERESTART || error == EINTR) { | if (error == ERESTART || error == EINTR) { | ||||
fvdat->flag &= ~FN_FLUSHINPROG; | fvdat->flag &= ~FN_FLUSHINPROG; | ||||
if (fvdat->flag & FN_FLUSHWANT) { | if (fvdat->flag & FN_FLUSHWANT) { | ||||
fvdat->flag &= ~FN_FLUSHWANT; | fvdat->flag &= ~FN_FLUSHWANT; | ||||
wakeup(&fvdat->flag); | wakeup(&fvdat->flag); | ||||
Show All 12 Lines |