From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S263185AbTIATFy (ORCPT ); Mon, 1 Sep 2003 15:05:54 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S263196AbTIATFy (ORCPT ); Mon, 1 Sep 2003 15:05:54 -0400 Received: from atrey.karlin.mff.cuni.cz ([195.113.31.123]:22201 "EHLO atrey.karlin.mff.cuni.cz") by vger.kernel.org with ESMTP id S263185AbTIATFq (ORCPT ); Mon, 1 Sep 2003 15:05:46 -0400 Date: Mon, 1 Sep 2003 21:05:44 +0200 From: Jan Kara To: linux-kernel@vger.kernel.org Cc: Herbert Poetzl Subject: Re: [BUG] mtime&ctime updated when it should not Message-ID: <20030901190544.GA24685@atrey.karlin.mff.cuni.cz> References: <20030901181113.GA15672@atrey.karlin.mff.cuni.cz> <20030901183527.GB21251@DUK2.13thfloor.at> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030901183527.GB21251@DUK2.13thfloor.at> User-Agent: Mutt/1.3.28i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org > On Mon, Sep 01, 2003 at 08:11:13PM +0200, Jan Kara wrote: > > Hello, > > > > one user pointed my attention to the fact that when the write fails > > (for example when the user quota is exceeded) the modification time is > > still updated (the problem appears both in 2.4 and 2.6). According to > > SUSv3 that should not happen because the specification says that mtime > > and ctime should be marked for update upon a successful completition > > of a write (not that it would forbid updating the times in other cases > > but I find it at least a bit nonintuitive). > > The easiest fix would be probably to "backup" the times at the > > beginning of the write and restore the original values when the write > > fails (simply not updating the times would require more surgery because > > for example vmtruncate() is called when the write fails and it also > > updates the times). > > So should I write the patch or is the current behaviour considered > > correct? > > hmm, what if the request only partially succeeds? > > for example echo "five" >/tmp/x will create /tmp/x > if inode limit permits it, but will leave it empty > if the space limit does not ... In thi case actually open(2) succeeds (so times will be set correctly) but following write(2) fails so it won't change times... > personally I wouldn't care about the modification > time on such a quota fault ... In my opinion correct behaviour is to change times if at least one byte is written... Honza -- Jan Kara SuSE CR Labs