From 8c2126191511603531db0a0fd0f7882225747c28 Mon Sep 17 00:00:00 2001 From: Henrik Nordstrom Date: Fri, 24 Jul 2009 17:12:47 +0200 Subject: [PATCH] Kick any pending *ufs write/close operations alive when the previous write completes When using uufs only part of the object got written out to the disk, forgetting to write out the last butes and closing the file. This should have been seen at least in in diskd as well even if it for some reason did not seem to show up in simple tests. Applies all the way down to 3.0. --- src/fs/ufs/store_io_ufs.cc | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/fs/ufs/store_io_ufs.cc b/src/fs/ufs/store_io_ufs.cc index 488aa31fb5..1f86970dee 100644 --- a/src/fs/ufs/store_io_ufs.cc +++ b/src/fs/ufs/store_io_ufs.cc @@ -363,17 +363,10 @@ UFSStoreState::writeCompleted(int errflag, size_t len, RefCount wr } /* - * DPW 2007-04-12 - * I'm seeing disk files remain open under vanilla UFS storage - * because storeClose() gets called before the last write is - * complete. I guess we have to check for the try_closing - * flag here. + * HNO 2009-07-24 + * Kick any pending write/close operations alive */ - if (flags.try_closing) { - debugs(72, 2, HERE << "UFSStoreState::writeCompleted" << - " flags.try_closing is set"); - tryClosing(); - } + drainWriteQueue(); } void -- 2.47.2