summaryrefslogtreecommitdiffstats
path: root/fs/inode.c
diff options
context:
space:
mode:
authorAlexander Block <ablock84@googlemail.com>2012-06-15 09:49:33 +0200
committerChris Mason <chris.mason@fusionio.com>2012-07-23 15:41:38 -0400
commit2bc5565286121d2a77ccd728eb3484dff2035b58 (patch)
treecb2ec5d12e7427a1cec9c41c7576118bb112b1dd /fs/inode.c
parent063849eafda03edf6872a3728b4a98dcc86290c7 (diff)
downloadlinux-2bc5565286121d2a77ccd728eb3484dff2035b58.tar.gz
linux-2bc5565286121d2a77ccd728eb3484dff2035b58.tar.bz2
linux-2bc5565286121d2a77ccd728eb3484dff2035b58.zip
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/inode.c')
-rw-r--r--fs/inode.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/inode.c b/fs/inode.c
index c99163b1b310..033529ecd242 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -1551,6 +1551,8 @@ void touch_atime(struct path *path)
* Btrfs), but since we touch atime while walking down the path we
* really don't care if we failed to update the atime of the file,
* so just ignore the return value.
+ * We may also fail on filesystems that have the ability to make parts
+ * of the fs read only, e.g. subvolumes in Btrfs.
*/
update_time(inode, &now, S_ATIME);
mnt_drop_write(mnt);