From: Linus Torvalds <torvalds@linux-foundation.org>
To: Deepa Dinamani <deepa.kernel@gmail.com>
Cc: linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Arnd Bergmann <arnd@arndb.de>,
Thomas Gleixner <tglx@linutronix.de>,
Al Viro <viro@zeniv.linux.org.uk>,
y2038@lists.linaro.org, Steve French <sfrench@samba.org>,
"linux-cifs@vger.kernel.org" <linux-cifs@vger.kernel.org>,
samba-technical@lists.samba.org, Joern Engel <joern@logfs.org>,
Prasad Joshi <prasadjoshi.linux@gmail.com>,
logfs@logfs.org, Andrew Morton <akpm@linux-foundation.org>,
Julia Lawall <Julia.Lawall@lip6.fr>,
David Howells <dhowells@redhat.com>, Firo Yang <firogm@gmail.com>,
Jaegeuk Kim <jaegeuk@kernel.org>,
Changman Lee <cm224.lee@samsung.com>,
Chao Yu <chao2.yu@samsung.com>,
"Linux F2FS DEV,
Mailing List" <linux-f2fs-devel@lists.sourceforge.net>,
Michal Hocko <mhocko@suse.com>,
Konstantin Khlebnikov <koct9i@gmail.com>,
Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
"J. Bruce Fields" <bfields@fieldses.org>,
Jeff Layton <jlayton@poochiereds.net>,
Trond Myklebust <trond.myklebust@primarydata.com>,
Anna Schumaker <anna.schumaker@netapp.com>,
"David S. Miller" <davem@davemloft.net>,
Linux NFS Mailing List <linux-nfs@vger.kernel.org>,
Network Development <netdev@vger.kernel.org>,
Steven Whitehouse <swhiteho@redhat.com>,
Bob Peterson <rpeterso@redhat.com>,
cluster-devel <cluster-devel@redhat.com>,
Mark Fasheh <mfasheh@suse.com>, Joel Becker <jlbec@evilplan.org>,
ocfs2-devel@oss.oracle.com, Anton Vorontsov <anton@enomsg.org>,
Colin Cross <ccross@android.com>,
Kees Cook <keescook@chromium.org>,
Tony Luck <tony.luck@intel.com>, Chris Mason <clm@fb.com>,
Josef Bacik <jbacik@fb.com>, David Sterba <dsterba@suse.com>,
linux-btrfs <linux-btrfs@vger.kernel.org>,
Miklos Szeredi <miklos@szeredi.hu>,
"open list:FUSE: FILESYSTEM..."
<fuse-devel@lists.sourceforge.net>,
Felipe Balbi <balbi@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
USB list <linux-usb@vger.kernel.org>,
Doug Ledford <dledford@redhat.com>,
Sean Hefty <sean.hefty@intel.com>,
Hal Rosenstock <hal.rosenstock@gmail.com>,
"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
Robert Richter <rric@kernel.org>,
"oprofile-list@lists.sf.net" <oprofile-list@lists.sf.net>,
Alexei Starovoitov <ast@kernel.org>,
Hugh Dickins <hughd@google.com>, linux-mm <linux-mm@kvack.org>,
Paul Moore <paul@paul-moore.com>,
Stephen Smalley <sds@tycho.nsa.gov>,
Eric Paris <eparis@parisplace.org>,
selinux@tycho.nsa.gov, James Morris <james.l.morris@oracle.com>,
"Serge E. Hallyn" <serge@hallyn.com>,
LSM List <linux-security-module@vger.kernel.org>,
Eric Van Hensbergen <ericvh@gmail.com>,
Ron Minnich <rminnich@sandia.gov>,
Latchesar Ionkov <lucho@ionkov.net>,
V9FS Developers <v9fs-developer@lists.sourceforge.net>,
Ian Kent <raven@themaw.net>,
autofs mailing list <autofs@vger.kernel.org>,
Matthew Garrett <matthew.garrett@nebula.com>,
Jeremy Kerr <jk@ozlabs.org>,
Matt Fleming <matt@codeblueprint.co.uk>,
"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
Peter Hurley <peter@hurleysoftware.com>,
Josh Triplett <josh@joshtriplett.org>,
Boaz Harrosh <ooo@electrozaur.com>,
Benny Halevy <bhalevy@primarydata.com>,
open-osd <osd-dev@open-osd.org>,
Mike Marshall <hubcap@omnibond.com>,
pvfs2-developers@beowulf-underground.org,
Nadia Yvette Chambers <nyc@holomorphy.com>,
Dave Kleikamp <shaggy@kernel.org>,
jfs-discussion@lists.sourceforge.net,
Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>,
linux-nilfs@vger.kernel.org
Subject: Re: [PATCH 04/21] fs: Replace CURRENT_TIME with current_fs_time() for inode timestamps
Date: Thu, 9 Jun 2016 12:08:04 -0700 [thread overview]
Message-ID: <CA+55aFzceGREzGEJda8qt6gv6=iE_yDbM+mO2dJJa0wbu-o-Ww@mail.gmail.com> (raw)
In-Reply-To: <1465448705-25055-5-git-send-email-deepa.kernel@gmail.com>
On Wed, Jun 8, 2016 at 10:04 PM, Deepa Dinamani <deepa.kernel@gmail.com> wrote:
> CURRENT_TIME macro is not appropriate for filesystems as it
> doesn't use the right granularity for filesystem timestamps.
> Use current_fs_time() instead.
Again - using the inode instead fo the syuperblock in tghis patch
would have made the patch much more obvious (it could have been 99%
generated with the sed-script I sent out a week or two ago), and it
would have made it unnecessary to add these kinds of things:
> diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
> index e9f5043..85c12f0 100644
> --- a/drivers/usb/core/devio.c
> +++ b/drivers/usb/core/devio.c
> @@ -2359,6 +2359,7 @@ static long usbdev_do_ioctl(struct file *file, unsigned int cmd,
> {
> struct usb_dev_state *ps = file->private_data;
> struct inode *inode = file_inode(file);
> + struct super_block *sb = inode->i_sb;
> struct usb_device *dev = ps->dev;
> int ret = -ENOTTY;
where we add a new variable just because the calling convention was wrong.
It's not even 100% obvious that a filesystem has to have one single
time representation, so making the time function about the entity
whose time is set is also conceptually a much better model, never mind
that it is just what every single user seems to want anyway.
So I'd *much* rather see
+ inode->i_atime = inode->i_mtime = inode->i_ctime =
current_fs_time(inode);
over seeing either of these two variants::
+ inode->i_atime = inode->i_mtime = inode->i_ctime =
current_fs_time(inode->i_sb);
+ ret->i_atime = ret->i_mtime = ret->i_ctime = current_fs_time(sb);
because the first of those variants (grep for current_fs_time() in the
current git tree, and notice that it's the common one) we have the
pointless "let's chase a pointer in every caller"
And while it's true that the second variant is natural for *some*
situations, I've yet to find one where it wasn't equally sane to just
pass in the inode instead.
Linus
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2016-06-09 19:08 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-09 5:04 [PATCH 00/21] Delete CURRENT_TIME and CURRENT_TIME_SEC macros Deepa Dinamani
2016-06-09 5:04 ` [PATCH 04/21] fs: Replace CURRENT_TIME with current_fs_time() for inode timestamps Deepa Dinamani
2016-06-09 7:55 ` David Sterba
2016-06-09 10:28 ` Steven Whitehouse
2016-06-09 19:08 ` Linus Torvalds [this message]
2016-06-09 20:38 ` Deepa Dinamani
2016-06-09 21:02 ` Linus Torvalds
2016-06-10 22:23 ` Arnd Bergmann
2016-06-09 7:51 ` [PATCH 00/21] Delete CURRENT_TIME and CURRENT_TIME_SEC macros Felipe Balbi
2016-06-09 13:05 [PATCH 04/21] fs: Replace CURRENT_TIME with current_fs_time() for inode timestamps Ryusuke Konishi
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='CA+55aFzceGREzGEJda8qt6gv6=iE_yDbM+mO2dJJa0wbu-o-Ww@mail.gmail.com' \
--to=torvalds@linux-foundation.org \
--cc=Julia.Lawall@lip6.fr \
--cc=akpm@linux-foundation.org \
--cc=anna.schumaker@netapp.com \
--cc=anton@enomsg.org \
--cc=arnd@arndb.de \
--cc=ast@kernel.org \
--cc=autofs@vger.kernel.org \
--cc=balbi@kernel.org \
--cc=bfields@fieldses.org \
--cc=bhalevy@primarydata.com \
--cc=ccross@android.com \
--cc=chao2.yu@samsung.com \
--cc=clm@fb.com \
--cc=cluster-devel@redhat.com \
--cc=cm224.lee@samsung.com \
--cc=davem@davemloft.net \
--cc=deepa.kernel@gmail.com \
--cc=dhowells@redhat.com \
--cc=dledford@redhat.com \
--cc=dsterba@suse.com \
--cc=eparis@parisplace.org \
--cc=ericvh@gmail.com \
--cc=firogm@gmail.com \
--cc=fuse-devel@lists.sourceforge.net \
--cc=gregkh@linuxfoundation.org \
--cc=hal.rosenstock@gmail.com \
--cc=hubcap@omnibond.com \
--cc=hughd@google.com \
--cc=jaegeuk@kernel.org \
--cc=james.l.morris@oracle.com \
--cc=jbacik@fb.com \
--cc=jfs-discussion@lists.sourceforge.net \
--cc=jk@ozlabs.org \
--cc=jlayton@poochiereds.net \
--cc=jlbec@evilplan.org \
--cc=joern@logfs.org \
--cc=josh@joshtriplett.org \
--cc=keescook@chromium.org \
--cc=koct9i@gmail.com \
--cc=konishi.ryusuke@lab.ntt.co.jp \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-nilfs@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=logfs@logfs.org \
--cc=lucho@ionkov.net \
--cc=matt@codeblueprint.co.uk \
--cc=matthew.garrett@nebula.com \
--cc=mfasheh@suse.com \
--cc=mhocko@suse.com \
--cc=miklos@szeredi.hu \
--cc=n-horiguchi@ah.jp.nec.com \
--cc=netdev@vger.kernel.org \
--cc=nyc@holomorphy.com \
--cc=ocfs2-devel@oss.oracle.com \
--cc=ooo@electrozaur.com \
--cc=oprofile-list@lists.sf.net \
--cc=osd-dev@open-osd.org \
--cc=paul@paul-moore.com \
--cc=peter@hurleysoftware.com \
--cc=prasadjoshi.linux@gmail.com \
--cc=pvfs2-developers@beowulf-underground.org \
--cc=raven@themaw.net \
--cc=rminnich@sandia.gov \
--cc=rpeterso@redhat.com \
--cc=rric@kernel.org \
--cc=samba-technical@lists.samba.org \
--cc=sds@tycho.nsa.gov \
--cc=sean.hefty@intel.com \
--cc=selinux@tycho.nsa.gov \
--cc=serge@hallyn.com \
--cc=sfrench@samba.org \
--cc=shaggy@kernel.org \
--cc=swhiteho@redhat.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=trond.myklebust@primarydata.com \
--cc=v9fs-developer@lists.sourceforge.net \
--cc=viro@zeniv.linux.org.uk \
--cc=y2038@lists.linaro.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox