From: Henrik Nordstrom Date: Fri, 24 Jul 2009 15:12:47 +0000 (+0200) Subject: Kick any pending *ufs write/close operations alive when the previous write completes X-Git-Tag: SQUID_3_2_0_1~850 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8c2126191511603531db0a0fd0f7882225747c28;p=thirdparty%2Fsquid.git 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. --- 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