diff options
author | Mark Fasheh <mark.fasheh@oracle.com> | 2007-03-01 20:01:55 +0100 |
---|---|---|
committer | Mark Fasheh <mark.fasheh@oracle.com> | 2007-04-27 00:02:26 +0200 |
commit | 5b04aa3a64f854244bc40a6f528176ed50b5c4f6 (patch) | |
tree | 2bdee522ce482f06a9f3adc8e66e4ff23be06860 /fs/sync.c | |
parent | ocfs2: zero tail of sparse files on truncate (diff) | |
download | linux-5b04aa3a64f854244bc40a6f528176ed50b5c4f6.tar.xz linux-5b04aa3a64f854244bc40a6f528176ed50b5c4f6.zip |
[PATCH] Turn do_sync_file_range() into do_sync_mapping_range()
do_sync_file_range() accepts a file * from which it takes an address_space to
sync. Abstract out the bulk of the function into do_sync_mapping_range()
which takes the address_space directly. This way callers who want to sync an
address_space directly can take advantage of the functionality provided.
do_sync_file_range() is preserved as a small wrapper around
do_sync_mapping_range().
Ocfs2 in particular would like to use this to initiate a sync of a specific
inode range during truncate, where a file * may not be available.
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'fs/sync.c')
-rw-r--r-- | fs/sync.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/sync.c b/fs/sync.c index d0feff61e6aa..5cb9e7e43383 100644 --- a/fs/sync.c +++ b/fs/sync.c @@ -239,13 +239,11 @@ out: /* * `endbyte' is inclusive */ -int do_sync_file_range(struct file *file, loff_t offset, loff_t endbyte, - unsigned int flags) +int do_sync_mapping_range(struct address_space *mapping, loff_t offset, + loff_t endbyte, unsigned int flags) { int ret; - struct address_space *mapping; - mapping = file->f_mapping; if (!mapping) { ret = -EINVAL; goto out; @@ -275,4 +273,4 @@ int do_sync_file_range(struct file *file, loff_t offset, loff_t endbyte, out: return ret; } -EXPORT_SYMBOL_GPL(do_sync_file_range); +EXPORT_SYMBOL_GPL(do_sync_mapping_range); |