diff options
author | Alexander Block <ablock84@googlemail.com> | 2012-06-15 09:49:33 +0200 |
---|---|---|
committer | Chris Mason <chris.mason@fusionio.com> | 2012-07-23 15:41:38 -0400 |
commit | 2bc5565286121d2a77ccd728eb3484dff2035b58 (patch) | |
tree | cb2ec5d12e7427a1cec9c41c7576118bb112b1dd /fs/btrfs | |
parent | 063849eafda03edf6872a3728b4a98dcc86290c7 (diff) |
Btrfs: don't update atime on RO subvolumes
Before the update_time inode operation was indroduced, it was
not possible to prevent updates of atime on RO subvolumes. VFS
was only able to check for RO on the mount, but did not know
anything about btrfs subvolumes.
btrfs_update_time does now check if the root is RO and skip
updating of times.
Signed-off-by: Alexander Block <ablock84@googlemail.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/inode.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index a7d1921ac76b..fcc65802f367 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -4518,6 +4518,11 @@ int btrfs_dirty_inode(struct inode *inode) static int btrfs_update_time(struct inode *inode, struct timespec *now, int flags) { + struct btrfs_root *root = BTRFS_I(inode)->root; + + if (btrfs_root_readonly(root)) + return -EROFS; + if (flags & S_VERSION) inode_inc_iversion(inode); if (flags & S_CTIME) |