From: Al Viro <viro@ZenIV.linux.org.uk>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: hch@lst.de, linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com,
Artem.Bityutskiy@nokia.com
Subject: Re: [PATCH] always set a/c/mtime through ->setattr
Date: Sat, 31 May 2008 14:20:48 +0100 [thread overview]
Message-ID: <20080531132048.GA4201@ZenIV.linux.org.uk> (raw)
In-Reply-To: <E1JzFFa-0008VR-9B@pomaz-ex.szeredi.hu>
On Thu, May 22, 2008 at 08:10:50PM +0200, Miklos Szeredi wrote:
> But there are quite a few others which don't call inode_setattr (which
> means that the unchanged time optimization is lost), or which do
> something possibly slow in their ->setattr():
>
> adfs, 9p, afs, coda, gfs2 ...
>
> just to name a few at the start of the alphabet.
>
> So it looks to me as this could cause some unintended performance
> regressions in these filesystems.
Actually, there's worse one: ext3. It *does* call inode_setattr(),
all right, but then it proceeds to call ext3_orphan_del(). Which
will
lock_super(inode->i_sb);
if (list_empty(&ei->i_orphan)) {
unlock_super(inode->i_sb);
return 0;
}
and bugger off, but...
* it's going to cost us
* code in _caller_ is bogus - we call that sucker regardless of
whether we had ATTR_SIZE in ia_valid
And there's one more problem, promising very ugly code review: locking
rules for notify_change() had suddenly changed - you are calling it
without i_mutex now. And ext3_setattr() is not happy - especially due
to this blind call of ext3_orphan_del() in there. We can easily fix
that one, but you'll need to audit the rest of instances...
next prev parent reply other threads:[~2008-05-31 13:20 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-20 6:08 [PATCH] always set a/c/mtime through ->setattr Christoph Hellwig
2008-05-20 6:19 ` Artem Bityutskiy
2008-05-20 6:19 ` Artem Bityutskiy
2008-05-20 6:28 ` Christoph Hellwig
2008-05-20 7:40 ` Miklos Szeredi
2008-05-20 8:33 ` Christoph Hellwig
2008-05-22 18:10 ` Miklos Szeredi
2008-05-22 18:10 ` Miklos Szeredi
2008-05-31 13:20 ` Al Viro [this message]
2008-05-31 13:24 ` Christoph Hellwig
2008-05-31 13:35 ` Al Viro
2008-05-21 6:58 ` [PATCH 2/2] " Christoph Hellwig
2008-05-21 17:19 ` Chuck Lever
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080531132048.GA4201@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=Artem.Bityutskiy@nokia.com \
--cc=hch@lst.de \
--cc=linux-fsdevel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.