]> git.baikalelectronics.ru Git - kernel.git/commit
fs: introduce inode operation ->update_time
authorJosef Bacik <josef@redhat.com>
Mon, 26 Mar 2012 13:59:21 +0000 (09:59 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 1 Jun 2012 16:07:25 +0000 (12:07 -0400)
commitaaa5d0722545162b991499c3081cf66903ad76ff
tree7012b569ee9e0781761a8eb388190979441583c7
parentdd3a3f374d36cb6a2f589bc152631c3ea3778197
fs: introduce inode operation ->update_time

Btrfs has to make sure we have space to allocate new blocks in order to modify
the inode, so updating time can fail.  We've gotten around this by having our
own file_update_time but this is kind of a pain, and Christoph has indicated he
would like to make xfs do something different with atime updates.  So introduce
->update_time, where we will deal with i_version an a/m/c time updates and
indicate which changes need to be made.  The normal version just does what it
has always done, updates the time and marks the inode dirty, and then
filesystems can choose to do something different.

I've gone through all of the users of file_update_time and made them check for
errors with the exception of the fault code since it's complicated and I wasn't
quite sure what to do there, also Jan is going to be pushing the file time
updates into page_mkwrite for those who have it so that should satisfy btrfs and
make it not a big deal to check the file_update_time() return code in the
generic fault path. Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
12 files changed:
Documentation/filesystems/Locking
Documentation/filesystems/vfs.txt
fs/fuse/file.c
fs/inode.c
fs/ncpfs/file.c
fs/ntfs/file.c
fs/pipe.c
fs/splice.c
fs/xfs/xfs_file.c
include/linux/fs.h
mm/filemap.c
mm/filemap_xip.c