From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boaz Harrosh Subject: Re: [PATCH] exofs: simple_write_end does not mark_inode_dirty Date: Tue, 05 Jan 2010 09:00:55 +0200 Message-ID: <4B42E3A7.4060305@panasas.com> References: <4B378EE5.7090807@panasas.com> <20100104154227.0be385d9.akpm@linux-foundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: linux-fsdevel , open-osd , Al Viro , stable@kernel.org To: Andrew Morton Return-path: Received: from daytona.panasas.com ([67.152.220.89]:20725 "EHLO daytona.int.panasas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750763Ab0AEHA7 (ORCPT ); Tue, 5 Jan 2010 02:00:59 -0500 In-Reply-To: <20100104154227.0be385d9.akpm@linux-foundation.org> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On 01/05/2010 01:42 AM, Andrew Morton wrote: > On Sun, 27 Dec 2009 18:44:21 +0200 > Boaz Harrosh wrote: > >> >> exofs uses simple_write_end() for it's .write_end handler. But >> it is not enough because simple_write_end() does not call >> mark_inode_dirty() when it extends i_size. So even if we do >> call mark_inode_dirty at beginning of write out, with a very >> long IO and a saturated system we might get the .write_inode() >> called while still extend-writing to file and miss out on the last >> i_size updates. >> >> So override .write_end, call simple_write_end(), and afterwords if >> i_size was changed call mark_inode_dirty(). >> >> It stands to logic that since simple_write_end() was the one extending >> i_size it should also call mark_inode_dirty(). But it looks like all >> users of simple_write_end() are memory-bound pseudo filesystems, who >> could careless about mark_inode_dirty(). I might submit a >> warning-comment patch to simple_write_end() in future. >> >> Signed-off-by: Boaz Harrosh > OK, Thanks Andrew I'll redo it ASAP before pushing to Linus > You added this to linux-next without a "Cc: " to the > changelog, so it won't be backported. However this patch should be > backported, IMO. > > Boaz