* sort out lose ends after the O_SYNC series
@ 2009-09-30 20:16 Christoph Hellwig
2009-09-30 20:16 ` [PATCH 1/3] kill wait_on_page_writeback_range Christoph Hellwig
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Christoph Hellwig @ 2009-09-30 20:16 UTC (permalink / raw)
To: jack; +Cc: linux-fsdevel, dhowells, dedekind
Sort out some left overs of the O_SYNC series. The first patch
removes wait_on_writeback_range after converting the remaining user
over to the much better filemap_fdatawait_range interface, and the
other two remove some unessecary manual O_SYNC handling in afs and
ubifs.
All this requires my O_DSYNC patch applied first.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] kill wait_on_page_writeback_range
2009-09-30 20:16 sort out lose ends after the O_SYNC series Christoph Hellwig
@ 2009-09-30 20:16 ` Christoph Hellwig
2009-10-01 11:20 ` Jan Kara
2009-09-30 20:16 ` [PATCH 2/3]: afs: remove manual O_SYNC handling Christoph Hellwig
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Christoph Hellwig @ 2009-09-30 20:16 UTC (permalink / raw)
To: jack; +Cc: linux-fsdevel, dhowells, dedekind
All callers really want the more logical filemap_fdatawait_range interface,
so convert them to use it and merge wait_on_page_writeback_range into
filemap_fdatawait_range.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Index: linux-2.6/Documentation/filesystems/vfs.txt
===================================================================
--- linux-2.6.orig/Documentation/filesystems/vfs.txt 2009-09-30 13:43:04.670028719 -0300
+++ linux-2.6/Documentation/filesystems/vfs.txt 2009-09-30 13:43:11.088004004 -0300
@@ -472,7 +472,7 @@ __sync_single_inode) to check if ->write
writing out the whole address_space.
The Writeback tag is used by filemap*wait* and sync_page* functions,
-via wait_on_page_writeback_range, to wait for all writeback to
+via filemap_fdatawait_range, to wait for all writeback to
complete. While waiting ->sync_page (if defined) will be called on
each page that is found to require writeback.
Index: linux-2.6/fs/jbd2/commit.c
===================================================================
--- linux-2.6.orig/fs/jbd2/commit.c 2009-09-30 13:43:04.644024427 -0300
+++ linux-2.6/fs/jbd2/commit.c 2009-09-30 13:43:11.089004202 -0300
@@ -286,7 +286,7 @@ static int journal_finish_inode_data_buf
if (err) {
/*
* Because AS_EIO is cleared by
- * wait_on_page_writeback_range(), set it again so
+ * filemap_fdatawait_range(), set it again so
* that user process can get -EIO from fsync().
*/
set_bit(AS_EIO,
Index: linux-2.6/fs/sync.c
===================================================================
--- linux-2.6.orig/fs/sync.c 2009-09-30 13:43:04.637021859 -0300
+++ linux-2.6/fs/sync.c 2009-09-30 13:43:11.092004514 -0300
@@ -452,9 +452,7 @@ int do_sync_mapping_range(struct address
ret = 0;
if (flags & SYNC_FILE_RANGE_WAIT_BEFORE) {
- ret = wait_on_page_writeback_range(mapping,
- offset >> PAGE_CACHE_SHIFT,
- endbyte >> PAGE_CACHE_SHIFT);
+ ret = filemap_fdatawait_range(mapping, offset, endbyte);
if (ret < 0)
goto out;
}
@@ -467,9 +465,7 @@ int do_sync_mapping_range(struct address
}
if (flags & SYNC_FILE_RANGE_WAIT_AFTER) {
- ret = wait_on_page_writeback_range(mapping,
- offset >> PAGE_CACHE_SHIFT,
- endbyte >> PAGE_CACHE_SHIFT);
+ ret = filemap_fdatawait_range(mapping, offset, endbyte);
}
out:
return ret;
Index: linux-2.6/include/linux/fs.h
===================================================================
--- linux-2.6.orig/include/linux/fs.h 2009-09-30 13:43:04.663004220 -0300
+++ linux-2.6/include/linux/fs.h 2009-09-30 13:43:11.096003767 -0300
@@ -2086,8 +2086,6 @@ extern int filemap_fdatawait_range(struc
extern int filemap_write_and_wait(struct address_space *mapping);
extern int filemap_write_and_wait_range(struct address_space *mapping,
loff_t lstart, loff_t lend);
-extern int wait_on_page_writeback_range(struct address_space *mapping,
- pgoff_t start, pgoff_t end);
extern int __filemap_fdatawrite_range(struct address_space *mapping,
loff_t start, loff_t end, int sync_mode);
extern int filemap_fdatawrite_range(struct address_space *mapping,
Index: linux-2.6/mm/filemap.c
===================================================================
--- linux-2.6.orig/mm/filemap.c 2009-09-30 13:43:04.655004248 -0300
+++ linux-2.6/mm/filemap.c 2009-09-30 13:45:00.480006033 -0300
@@ -260,27 +260,27 @@ int filemap_flush(struct address_space *
EXPORT_SYMBOL(filemap_flush);
/**
- * wait_on_page_writeback_range - wait for writeback to complete
- * @mapping: target address_space
- * @start: beginning page index
- * @end: ending page index
+ * filemap_fdatawait_range - wait for writeback to complete
+ * @mapping: address space structure to wait for
+ * @start_byte: offset in bytes where the range starts
+ * @end_byte: offset in bytes where the range ends (inclusive)
*
- * Wait for writeback to complete against pages indexed by start->end
- * inclusive
+ * Walk the list of under-writeback pages of the given address space
+ * in the given range and wait for all of them.
*/
-int wait_on_page_writeback_range(struct address_space *mapping,
- pgoff_t start, pgoff_t end)
+int filemap_fdatawait_range(struct address_space *mapping, loff_t start_byte,
+ loff_t end_byte)
{
+ pgoff_t index = start_byte >> PAGE_CACHE_SHIFT;
+ pgoff_t end = end_byte >> PAGE_CACHE_SHIFT;
struct pagevec pvec;
int nr_pages;
int ret = 0;
- pgoff_t index;
- if (end < start)
+ if (end_byte < start_byte)
return 0;
pagevec_init(&pvec, 0);
- index = start;
while ((index <= end) &&
(nr_pages = pagevec_lookup_tag(&pvec, mapping, &index,
PAGECACHE_TAG_WRITEBACK,
@@ -310,25 +310,6 @@ int wait_on_page_writeback_range(struct
return ret;
}
-
-/**
- * filemap_fdatawait_range - wait for all under-writeback pages to complete in a given range
- * @mapping: address space structure to wait for
- * @start: offset in bytes where the range starts
- * @end: offset in bytes where the range ends (inclusive)
- *
- * Walk the list of under-writeback pages of the given address space
- * in the given range and wait for all of them.
- *
- * This is just a simple wrapper so that callers don't have to convert offsets
- * to page indexes themselves
- */
-int filemap_fdatawait_range(struct address_space *mapping, loff_t start,
- loff_t end)
-{
- return wait_on_page_writeback_range(mapping, start >> PAGE_CACHE_SHIFT,
- end >> PAGE_CACHE_SHIFT);
-}
EXPORT_SYMBOL(filemap_fdatawait_range);
/**
@@ -345,8 +326,7 @@ int filemap_fdatawait(struct address_spa
if (i_size == 0)
return 0;
- return wait_on_page_writeback_range(mapping, 0,
- (i_size - 1) >> PAGE_CACHE_SHIFT);
+ return filemap_fdatawait_range(mapping, 0, i_size - 1);
}
EXPORT_SYMBOL(filemap_fdatawait);
@@ -393,9 +373,8 @@ int filemap_write_and_wait_range(struct
WB_SYNC_ALL);
/* See comment of filemap_write_and_wait() */
if (err != -EIO) {
- int err2 = wait_on_page_writeback_range(mapping,
- lstart >> PAGE_CACHE_SHIFT,
- lend >> PAGE_CACHE_SHIFT);
+ int err2 = filemap_fdatawait_range(mapping,
+ lstart, lend);
if (!err)
err = err2;
}
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3]: afs: remove manual O_SYNC handling
2009-09-30 20:16 sort out lose ends after the O_SYNC series Christoph Hellwig
2009-09-30 20:16 ` [PATCH 1/3] kill wait_on_page_writeback_range Christoph Hellwig
@ 2009-09-30 20:16 ` Christoph Hellwig
2009-09-30 20:17 ` [PATCH 3/3] ubifs: " Christoph Hellwig
2009-10-01 10:42 ` [PATCH 2/3]: afs: " David Howells
3 siblings, 0 replies; 9+ messages in thread
From: Christoph Hellwig @ 2009-09-30 20:16 UTC (permalink / raw)
To: jack; +Cc: linux-fsdevel, dhowells, dedekind
generic_file_aio_write already calls into ->fsync to handle O_SYNC/O_DSYNC.
Remove the duplicate manual invocation.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Index: linux-2.6/fs/afs/write.c
===================================================================
--- linux-2.6.orig/fs/afs/write.c 2009-09-30 13:59:20.550278942 -0300
+++ linux-2.6/fs/afs/write.c 2009-09-30 14:01:32.739005666 -0300
@@ -671,7 +671,6 @@ ssize_t afs_file_write(struct kiocb *ioc
struct afs_vnode *vnode = AFS_FS_I(dentry->d_inode);
ssize_t result;
size_t count = iov_length(iov, nr_segs);
- int ret;
_enter("{%x.%u},{%zu},%lu,",
vnode->fid.vid, vnode->fid.vnode, count, nr_segs);
@@ -691,14 +690,6 @@ ssize_t afs_file_write(struct kiocb *ioc
return result;
}
- /* return error values for O_SYNC and IS_SYNC() */
- if (IS_SYNC(&vnode->vfs_inode) || iocb->ki_filp->f_flags & O_DSYNC) {
- ret = afs_fsync(iocb->ki_filp, dentry,
- (iocb->ki_filp->f_flags & __O_SYNC) ? 0 : 1);
- if (ret < 0)
- result = ret;
- }
-
_leave(" = %zd", result);
return result;
}
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/3] ubifs: remove manual O_SYNC handling
2009-09-30 20:16 sort out lose ends after the O_SYNC series Christoph Hellwig
2009-09-30 20:16 ` [PATCH 1/3] kill wait_on_page_writeback_range Christoph Hellwig
2009-09-30 20:16 ` [PATCH 2/3]: afs: remove manual O_SYNC handling Christoph Hellwig
@ 2009-09-30 20:17 ` Christoph Hellwig
2009-10-01 7:39 ` Artem Bityutskiy
2009-10-01 10:42 ` [PATCH 2/3]: afs: " David Howells
3 siblings, 1 reply; 9+ messages in thread
From: Christoph Hellwig @ 2009-09-30 20:17 UTC (permalink / raw)
To: jack; +Cc: linux-fsdevel, dhowells, dedekind
generic_file_aio_write already calls into ->fsync to handle O_SYNC/O_DSYNC.
Remove the duplicate call to ubifs_sync_wbufs_by_inode which is already
covered by ubifs_fsync.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Index: linux-2.6/fs/ubifs/file.c
===================================================================
--- linux-2.6.orig/fs/ubifs/file.c 2009-09-30 14:01:26.046278266 -0300
+++ linux-2.6/fs/ubifs/file.c 2009-09-30 14:02:16.850272504 -0300
@@ -1389,7 +1389,6 @@ static ssize_t ubifs_aio_write(struct ki
unsigned long nr_segs, loff_t pos)
{
int err;
- ssize_t ret;
struct inode *inode = iocb->ki_filp->f_mapping->host;
struct ubifs_info *c = inode->i_sb->s_fs_info;
@@ -1397,17 +1396,7 @@ static ssize_t ubifs_aio_write(struct ki
if (err)
return err;
- ret = generic_file_aio_write(iocb, iov, nr_segs, pos);
- if (ret < 0)
- return ret;
-
- if (ret > 0 && (IS_SYNC(inode) || iocb->ki_filp->f_flags & O_DSYNC)) {
- err = ubifs_sync_wbufs_by_inode(c, inode);
- if (err)
- return err;
- }
-
- return ret;
+ return generic_file_aio_write(iocb, iov, nr_segs, pos);
}
static int ubifs_set_page_dirty(struct page *page)
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] ubifs: remove manual O_SYNC handling
2009-09-30 20:17 ` [PATCH 3/3] ubifs: " Christoph Hellwig
@ 2009-10-01 7:39 ` Artem Bityutskiy
2009-10-01 7:42 ` Artem Bityutskiy
0 siblings, 1 reply; 9+ messages in thread
From: Artem Bityutskiy @ 2009-10-01 7:39 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: jack, linux-fsdevel, dhowells
On Wed, 2009-09-30 at 22:17 +0200, Christoph Hellwig wrote:
> generic_file_aio_write already calls into ->fsync to handle O_SYNC/O_DSYNC.
> Remove the duplicate call to ubifs_sync_wbufs_by_inode which is already
> covered by ubifs_fsync.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Pushed to ubifs-2.6.git tree, thanks!
--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] ubifs: remove manual O_SYNC handling
2009-10-01 7:39 ` Artem Bityutskiy
@ 2009-10-01 7:42 ` Artem Bityutskiy
2009-10-01 11:14 ` Jan Kara
0 siblings, 1 reply; 9+ messages in thread
From: Artem Bityutskiy @ 2009-10-01 7:42 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: jack, linux-fsdevel, dhowells
On Thu, 2009-10-01 at 10:39 +0300, Artem Bityutskiy wrote:
> On Wed, 2009-09-30 at 22:17 +0200, Christoph Hellwig wrote:
> > generic_file_aio_write already calls into ->fsync to handle O_SYNC/O_DSYNC.
> > Remove the duplicate call to ubifs_sync_wbufs_by_inode which is already
> > covered by ubifs_fsync.
> >
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
>
> Pushed to ubifs-2.6.git tree, thanks!
Just to make sure, the patch looks independent on anything else to me,
right? So I pushed it to my 2.6.32-rc1 - based tree.
--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3]: afs: remove manual O_SYNC handling
2009-09-30 20:16 sort out lose ends after the O_SYNC series Christoph Hellwig
` (2 preceding siblings ...)
2009-09-30 20:17 ` [PATCH 3/3] ubifs: " Christoph Hellwig
@ 2009-10-01 10:42 ` David Howells
3 siblings, 0 replies; 9+ messages in thread
From: David Howells @ 2009-10-01 10:42 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: dhowells, jack, linux-fsdevel, dedekind
Christoph Hellwig <hch@lst.de> wrote:
> generic_file_aio_write already calls into ->fsync to handle O_SYNC/O_DSYNC.
> Remove the duplicate manual invocation.
>
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: David Howells <dhowells@redhat.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] ubifs: remove manual O_SYNC handling
2009-10-01 7:42 ` Artem Bityutskiy
@ 2009-10-01 11:14 ` Jan Kara
0 siblings, 0 replies; 9+ messages in thread
From: Jan Kara @ 2009-10-01 11:14 UTC (permalink / raw)
To: Artem Bityutskiy; +Cc: Christoph Hellwig, jack, linux-fsdevel, dhowells
On Thu 01-10-09 10:42:46, Artem Bityutskiy wrote:
> On Thu, 2009-10-01 at 10:39 +0300, Artem Bityutskiy wrote:
> > On Wed, 2009-09-30 at 22:17 +0200, Christoph Hellwig wrote:
> > > generic_file_aio_write already calls into ->fsync to handle O_SYNC/O_DSYNC.
> > > Remove the duplicate call to ubifs_sync_wbufs_by_inode which is already
> > > covered by ubifs_fsync.
> > >
> > > Signed-off-by: Christoph Hellwig <hch@lst.de>
> >
> > Pushed to ubifs-2.6.git tree, thanks!
>
> Just to make sure, the patch looks independent on anything else to me,
> right? So I pushed it to my 2.6.32-rc1 - based tree.
There is a patch dependency on a Christoph's O_DSYNC patch because the
check for O_DSYNC used to be a check for O_SYNC. Functionally, there's
no dependency...
Honza
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] kill wait_on_page_writeback_range
2009-09-30 20:16 ` [PATCH 1/3] kill wait_on_page_writeback_range Christoph Hellwig
@ 2009-10-01 11:20 ` Jan Kara
0 siblings, 0 replies; 9+ messages in thread
From: Jan Kara @ 2009-10-01 11:20 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: jack, linux-fsdevel, dhowells, dedekind
On Wed 30-09-09 22:16:33, Christoph Hellwig wrote:
>
> All callers really want the more logical filemap_fdatawait_range interface,
> so convert them to use it and merge wait_on_page_writeback_range into
> filemap_fdatawait_range.
>
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Looks good. Acked-by: Jan Kara <jack@suse.cz>
Honza
>
> Index: linux-2.6/Documentation/filesystems/vfs.txt
> ===================================================================
> --- linux-2.6.orig/Documentation/filesystems/vfs.txt 2009-09-30 13:43:04.670028719 -0300
> +++ linux-2.6/Documentation/filesystems/vfs.txt 2009-09-30 13:43:11.088004004 -0300
> @@ -472,7 +472,7 @@ __sync_single_inode) to check if ->write
> writing out the whole address_space.
>
> The Writeback tag is used by filemap*wait* and sync_page* functions,
> -via wait_on_page_writeback_range, to wait for all writeback to
> +via filemap_fdatawait_range, to wait for all writeback to
> complete. While waiting ->sync_page (if defined) will be called on
> each page that is found to require writeback.
>
> Index: linux-2.6/fs/jbd2/commit.c
> ===================================================================
> --- linux-2.6.orig/fs/jbd2/commit.c 2009-09-30 13:43:04.644024427 -0300
> +++ linux-2.6/fs/jbd2/commit.c 2009-09-30 13:43:11.089004202 -0300
> @@ -286,7 +286,7 @@ static int journal_finish_inode_data_buf
> if (err) {
> /*
> * Because AS_EIO is cleared by
> - * wait_on_page_writeback_range(), set it again so
> + * filemap_fdatawait_range(), set it again so
> * that user process can get -EIO from fsync().
> */
> set_bit(AS_EIO,
> Index: linux-2.6/fs/sync.c
> ===================================================================
> --- linux-2.6.orig/fs/sync.c 2009-09-30 13:43:04.637021859 -0300
> +++ linux-2.6/fs/sync.c 2009-09-30 13:43:11.092004514 -0300
> @@ -452,9 +452,7 @@ int do_sync_mapping_range(struct address
>
> ret = 0;
> if (flags & SYNC_FILE_RANGE_WAIT_BEFORE) {
> - ret = wait_on_page_writeback_range(mapping,
> - offset >> PAGE_CACHE_SHIFT,
> - endbyte >> PAGE_CACHE_SHIFT);
> + ret = filemap_fdatawait_range(mapping, offset, endbyte);
> if (ret < 0)
> goto out;
> }
> @@ -467,9 +465,7 @@ int do_sync_mapping_range(struct address
> }
>
> if (flags & SYNC_FILE_RANGE_WAIT_AFTER) {
> - ret = wait_on_page_writeback_range(mapping,
> - offset >> PAGE_CACHE_SHIFT,
> - endbyte >> PAGE_CACHE_SHIFT);
> + ret = filemap_fdatawait_range(mapping, offset, endbyte);
> }
> out:
> return ret;
> Index: linux-2.6/include/linux/fs.h
> ===================================================================
> --- linux-2.6.orig/include/linux/fs.h 2009-09-30 13:43:04.663004220 -0300
> +++ linux-2.6/include/linux/fs.h 2009-09-30 13:43:11.096003767 -0300
> @@ -2086,8 +2086,6 @@ extern int filemap_fdatawait_range(struc
> extern int filemap_write_and_wait(struct address_space *mapping);
> extern int filemap_write_and_wait_range(struct address_space *mapping,
> loff_t lstart, loff_t lend);
> -extern int wait_on_page_writeback_range(struct address_space *mapping,
> - pgoff_t start, pgoff_t end);
> extern int __filemap_fdatawrite_range(struct address_space *mapping,
> loff_t start, loff_t end, int sync_mode);
> extern int filemap_fdatawrite_range(struct address_space *mapping,
> Index: linux-2.6/mm/filemap.c
> ===================================================================
> --- linux-2.6.orig/mm/filemap.c 2009-09-30 13:43:04.655004248 -0300
> +++ linux-2.6/mm/filemap.c 2009-09-30 13:45:00.480006033 -0300
> @@ -260,27 +260,27 @@ int filemap_flush(struct address_space *
> EXPORT_SYMBOL(filemap_flush);
>
> /**
> - * wait_on_page_writeback_range - wait for writeback to complete
> - * @mapping: target address_space
> - * @start: beginning page index
> - * @end: ending page index
> + * filemap_fdatawait_range - wait for writeback to complete
> + * @mapping: address space structure to wait for
> + * @start_byte: offset in bytes where the range starts
> + * @end_byte: offset in bytes where the range ends (inclusive)
> *
> - * Wait for writeback to complete against pages indexed by start->end
> - * inclusive
> + * Walk the list of under-writeback pages of the given address space
> + * in the given range and wait for all of them.
> */
> -int wait_on_page_writeback_range(struct address_space *mapping,
> - pgoff_t start, pgoff_t end)
> +int filemap_fdatawait_range(struct address_space *mapping, loff_t start_byte,
> + loff_t end_byte)
> {
> + pgoff_t index = start_byte >> PAGE_CACHE_SHIFT;
> + pgoff_t end = end_byte >> PAGE_CACHE_SHIFT;
> struct pagevec pvec;
> int nr_pages;
> int ret = 0;
> - pgoff_t index;
>
> - if (end < start)
> + if (end_byte < start_byte)
> return 0;
>
> pagevec_init(&pvec, 0);
> - index = start;
> while ((index <= end) &&
> (nr_pages = pagevec_lookup_tag(&pvec, mapping, &index,
> PAGECACHE_TAG_WRITEBACK,
> @@ -310,25 +310,6 @@ int wait_on_page_writeback_range(struct
>
> return ret;
> }
> -
> -/**
> - * filemap_fdatawait_range - wait for all under-writeback pages to complete in a given range
> - * @mapping: address space structure to wait for
> - * @start: offset in bytes where the range starts
> - * @end: offset in bytes where the range ends (inclusive)
> - *
> - * Walk the list of under-writeback pages of the given address space
> - * in the given range and wait for all of them.
> - *
> - * This is just a simple wrapper so that callers don't have to convert offsets
> - * to page indexes themselves
> - */
> -int filemap_fdatawait_range(struct address_space *mapping, loff_t start,
> - loff_t end)
> -{
> - return wait_on_page_writeback_range(mapping, start >> PAGE_CACHE_SHIFT,
> - end >> PAGE_CACHE_SHIFT);
> -}
> EXPORT_SYMBOL(filemap_fdatawait_range);
>
> /**
> @@ -345,8 +326,7 @@ int filemap_fdatawait(struct address_spa
> if (i_size == 0)
> return 0;
>
> - return wait_on_page_writeback_range(mapping, 0,
> - (i_size - 1) >> PAGE_CACHE_SHIFT);
> + return filemap_fdatawait_range(mapping, 0, i_size - 1);
> }
> EXPORT_SYMBOL(filemap_fdatawait);
>
> @@ -393,9 +373,8 @@ int filemap_write_and_wait_range(struct
> WB_SYNC_ALL);
> /* See comment of filemap_write_and_wait() */
> if (err != -EIO) {
> - int err2 = wait_on_page_writeback_range(mapping,
> - lstart >> PAGE_CACHE_SHIFT,
> - lend >> PAGE_CACHE_SHIFT);
> + int err2 = filemap_fdatawait_range(mapping,
> + lstart, lend);
> if (!err)
> err = err2;
> }
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-10-01 11:20 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-30 20:16 sort out lose ends after the O_SYNC series Christoph Hellwig
2009-09-30 20:16 ` [PATCH 1/3] kill wait_on_page_writeback_range Christoph Hellwig
2009-10-01 11:20 ` Jan Kara
2009-09-30 20:16 ` [PATCH 2/3]: afs: remove manual O_SYNC handling Christoph Hellwig
2009-09-30 20:17 ` [PATCH 3/3] ubifs: " Christoph Hellwig
2009-10-01 7:39 ` Artem Bityutskiy
2009-10-01 7:42 ` Artem Bityutskiy
2009-10-01 11:14 ` Jan Kara
2009-10-01 10:42 ` [PATCH 2/3]: afs: " David Howells
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.