xfs
[Top] [All Lists]

Re: [PATCH 1/4] fs: split update_time() into update_time() and write_tim

To: Theodore Ts'o <tytso@xxxxxxx>
Subject: Re: [PATCH 1/4] fs: split update_time() into update_time() and write_time()
From: David Sterba <dsterba@xxxxxxx>
Date: Mon, 24 Nov 2014 17:38:30 +0100
Cc: Chris Mason <clm@xxxxxx>, linux-fsdevel@xxxxxxxxxxxxxxx, Ext4 Developers List <linux-ext4@xxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx, linux-btrfs@xxxxxxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20141121214245.GG7112@xxxxxxxxx>
Mail-followup-to: dsterba@xxxxxxx, Theodore Ts'o <tytso@xxxxxxx>, Chris Mason <clm@xxxxxx>, linux-fsdevel@xxxxxxxxxxxxxxx, Ext4 Developers List <linux-ext4@xxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx, linux-btrfs@xxxxxxxxxxxxxxx
References: <1416599964-21892-1-git-send-email-tytso@xxxxxxx> <1416599964-21892-2-git-send-email-tytso@xxxxxxx> <1416600528.24312.10@xxxxxxxxxxxxxxxxxxxx> <20141121214245.GG7112@xxxxxxxxx>
Reply-to: dsterba@xxxxxxx
User-agent: Mutt/1.5.23.1-rc1 (2014-03-12)
On Fri, Nov 21, 2014 at 04:42:45PM -0500, Theodore Ts'o wrote:
> Out of curiosity, why does btrfs_update_time() need to call
> btrfs_root_readonly()?  Why can't it just depend on the
> __mnt_want_write() call in touch_atime()?

mnt_want_write looks only at the mountpoint flags, the readonly
subvolume status is external to that.

> Surely if there are times when it's not OK to write into a btrfs file
> system and mnt_is_readonly() returns false, the VFS is going to get
> very confused abyway.
> 
> If the btrfs_update_time() is not necessary, then we could drop
> btrfs_update_time() and update_time() from the inode operations
> entirely, and depend on the VFS-level code in update_time().

It is necessary and the whole .update_time callback was added
intentionally, see commits

c3b2da314834499f34cba94f7053e55f6d6f92d8
fs: introduce inode operation ->update_time

e41f941a23115e84a8550b3d901a13a14b2edc2f
Btrfs: move over to use ->update_time

2bc5565286121d2a77ccd728eb3484dff2035b58
Btrfs: don't update atime on RO subvolumes

<Prev in Thread] Current Thread [Next in Thread>