Commit f4e6d844 authored by Matthew Wilcox's avatar Matthew Wilcox Committed by Al Viro

Remove last traces of ->sync_page

Commit 7eaceacc removed ->sync_page, but a few mentions of it still
existed in documentation and comments,
Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d4c91a8f
...@@ -1024,8 +1024,7 @@ could be on demand. For example wait_on_buffer sets the unplugging going ...@@ -1024,8 +1024,7 @@ could be on demand. For example wait_on_buffer sets the unplugging going
through sync_buffer() running blk_run_address_space(mapping). Or the caller through sync_buffer() running blk_run_address_space(mapping). Or the caller
can do it explicity through blk_unplug(bdev). So in the read case, can do it explicity through blk_unplug(bdev). So in the read case,
the queue gets explicitly unplugged as part of waiting for completion on that the queue gets explicitly unplugged as part of waiting for completion on that
buffer. For page driven IO, the address space ->sync_page() takes care of buffer.
doing the blk_run_address_space().
Aside: Aside:
This is kind of controversial territory, as it's not clear if plugging is This is kind of controversial territory, as it's not clear if plugging is
......
...@@ -179,7 +179,6 @@ unlocks and drops the reference. ...@@ -179,7 +179,6 @@ unlocks and drops the reference.
prototypes: prototypes:
int (*writepage)(struct page *page, struct writeback_control *wbc); int (*writepage)(struct page *page, struct writeback_control *wbc);
int (*readpage)(struct file *, struct page *); int (*readpage)(struct file *, struct page *);
int (*sync_page)(struct page *);
int (*writepages)(struct address_space *, struct writeback_control *); int (*writepages)(struct address_space *, struct writeback_control *);
int (*set_page_dirty)(struct page *page); int (*set_page_dirty)(struct page *page);
int (*readpages)(struct file *filp, struct address_space *mapping, int (*readpages)(struct file *filp, struct address_space *mapping,
...@@ -208,7 +207,6 @@ locking rules: ...@@ -208,7 +207,6 @@ locking rules:
PageLocked(page) i_mutex PageLocked(page) i_mutex
writepage: yes, unlocks (see below) writepage: yes, unlocks (see below)
readpage: yes, unlocks readpage: yes, unlocks
sync_page: maybe
writepages: writepages:
set_page_dirty no set_page_dirty no
readpages: readpages:
...@@ -226,8 +224,8 @@ error_remove_page: yes ...@@ -226,8 +224,8 @@ error_remove_page: yes
swap_activate: no swap_activate: no
swap_deactivate: no swap_deactivate: no
->write_begin(), ->write_end(), ->sync_page() and ->readpage() ->write_begin(), ->write_end() and ->readpage() may be called from
may be called from the request handler (/dev/loop). the request handler (/dev/loop).
->readpage() unlocks the page, either synchronously or via I/O ->readpage() unlocks the page, either synchronously or via I/O
completion. completion.
...@@ -283,11 +281,6 @@ will leave the page itself marked clean but it will be tagged as dirty in the ...@@ -283,11 +281,6 @@ will leave the page itself marked clean but it will be tagged as dirty in the
radix tree. This incoherency can lead to all sorts of hard-to-debug problems radix tree. This incoherency can lead to all sorts of hard-to-debug problems
in the filesystem like having dirty inodes at umount and losing written data. in the filesystem like having dirty inodes at umount and losing written data.
->sync_page() locking rules are not well-defined - usually it is called
with lock on page, but that is not guaranteed. Considering the currently
existing instances of this method ->sync_page() itself doesn't look
well-defined...
->writepages() is used for periodic writeback and for syscall-initiated ->writepages() is used for periodic writeback and for syscall-initiated
sync operations. The address_space should start I/O against at least sync operations. The address_space should start I/O against at least
*nr_to_write pages. *nr_to_write must be decremented for each page which is *nr_to_write pages. *nr_to_write must be decremented for each page which is
......
...@@ -534,9 +534,7 @@ __sync_single_inode) to check if ->writepages has been successful in ...@@ -534,9 +534,7 @@ __sync_single_inode) to check if ->writepages has been successful in
writing out the whole address_space. writing out the whole address_space.
The Writeback tag is used by filemap*wait* and sync_page* functions, The Writeback tag is used by filemap*wait* and sync_page* functions,
via filemap_fdatawait_range, to wait for all writeback to via filemap_fdatawait_range, to wait for all writeback to complete.
complete. While waiting ->sync_page (if defined) will be called on
each page that is found to require writeback.
An address_space handler may attach extra information to a page, An address_space handler may attach extra information to a page,
typically using the 'private' field in the 'struct page'. If such typically using the 'private' field in the 'struct page'. If such
...@@ -554,8 +552,8 @@ address_space has finer control of write sizes. ...@@ -554,8 +552,8 @@ address_space has finer control of write sizes.
The read process essentially only requires 'readpage'. The write The read process essentially only requires 'readpage'. The write
process is more complicated and uses write_begin/write_end or process is more complicated and uses write_begin/write_end or
set_page_dirty to write data into the address_space, and writepage, set_page_dirty to write data into the address_space, and writepage
sync_page, and writepages to writeback data to storage. and writepages to writeback data to storage.
Adding and removing pages to/from an address_space is protected by the Adding and removing pages to/from an address_space is protected by the
inode's i_mutex. inode's i_mutex.
......
...@@ -361,7 +361,6 @@ static int zisofs_readpage(struct file *file, struct page *page) ...@@ -361,7 +361,6 @@ static int zisofs_readpage(struct file *file, struct page *page)
const struct address_space_operations zisofs_aops = { const struct address_space_operations zisofs_aops = {
.readpage = zisofs_readpage, .readpage = zisofs_readpage,
/* No sync_page operation supported? */
/* No bmap operation supported */ /* No bmap operation supported */
}; };
......
...@@ -1854,7 +1854,7 @@ int ntfs_read_inode_mount(struct inode *vi) ...@@ -1854,7 +1854,7 @@ int ntfs_read_inode_mount(struct inode *vi)
/* Need this to sanity check attribute list references to $MFT. */ /* Need this to sanity check attribute list references to $MFT. */
vi->i_generation = ni->seq_no = le16_to_cpu(m->sequence_number); vi->i_generation = ni->seq_no = le16_to_cpu(m->sequence_number);
/* Provides readpage() and sync_page() for map_mft_record(). */ /* Provides readpage() for map_mft_record(). */
vi->i_mapping->a_ops = &ntfs_mst_aops; vi->i_mapping->a_ops = &ntfs_mst_aops;
ctx = ntfs_attr_get_search_ctx(ni, m); ctx = ntfs_attr_get_search_ctx(ni, m);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment