From: Christoph Hellwig The only caller that ever sets it can call fsync_bdev itself easily. Also update some comments. Signed-off-by: Christoph Hellwig Cc: Signed-off-by: Andrew Morton --- drivers/block/floppy.c | 2 +- drivers/block/genhd.c | 4 +++- fs/inode.c | 21 +++------------------ include/linux/fs.h | 2 +- 4 files changed, 8 insertions(+), 21 deletions(-) diff -puN drivers/block/floppy.c~remove-do_sync-parameter-from-__invalidate_device drivers/block/floppy.c --- 25/drivers/block/floppy.c~remove-do_sync-parameter-from-__invalidate_device Wed May 4 13:21:26 2005 +++ 25-akpm/drivers/block/floppy.c Wed May 4 13:21:26 2005 @@ -3345,7 +3345,7 @@ static inline int set_geometry(unsigned struct block_device *bdev = opened_bdev[cnt]; if (!bdev || ITYPE(drive_state[cnt].fd_device) != type) continue; - __invalidate_device(bdev, 0); + __invalidate_device(bdev); } up(&open_lock); } else { diff -puN drivers/block/genhd.c~remove-do_sync-parameter-from-__invalidate_device drivers/block/genhd.c --- 25/drivers/block/genhd.c~remove-do_sync-parameter-from-__invalidate_device Wed May 4 13:21:26 2005 +++ 25-akpm/drivers/block/genhd.c Wed May 4 13:21:26 2005 @@ -14,6 +14,7 @@ #include #include #include +#include #define MAX_PROBE_HASH 255 /* random */ @@ -691,7 +692,8 @@ int invalidate_partition(struct gendisk int res = 0; struct block_device *bdev = bdget_disk(disk, index); if (bdev) { - res = __invalidate_device(bdev, 1); + fsync_bdev(bdev); + res = __invalidate_device(bdev); bdput(bdev); } return res; diff -puN fs/inode.c~remove-do_sync-parameter-from-__invalidate_device fs/inode.c --- 25/fs/inode.c~remove-do_sync-parameter-from-__invalidate_device Wed May 4 13:21:26 2005 +++ 25-akpm/fs/inode.c Wed May 4 13:21:26 2005 @@ -27,7 +27,6 @@ * This is needed for the following functions: * - inode_has_buffers * - invalidate_inode_buffers - * - fsync_bdev * - invalidate_bdev * * FIXME: remove all knowledge of the buffer layer from this file @@ -339,14 +338,6 @@ static int invalidate_list(struct list_h return busy; } -/* - * This is a two-stage process. First we collect all - * offending inodes onto the throw-away list, and in - * the second stage we actually dispose of them. This - * is because we don't want to sleep while messing - * with the global lists.. - */ - /** * invalidate_inodes - discard the inodes on a device * @sb: superblock @@ -374,16 +365,11 @@ int invalidate_inodes(struct super_block EXPORT_SYMBOL(invalidate_inodes); -int __invalidate_device(struct block_device *bdev, int do_sync) +int __invalidate_device(struct block_device *bdev) { - struct super_block *sb; - int res; + struct super_block *sb = get_super(bdev); + int res = 0; - if (do_sync) - fsync_bdev(bdev); - - res = 0; - sb = get_super(bdev); if (sb) { /* * no need to lock the super, get_super holds the @@ -398,7 +384,6 @@ int __invalidate_device(struct block_dev invalidate_bdev(bdev, 0); return res; } - EXPORT_SYMBOL(__invalidate_device); static int can_unuse(struct inode *inode) diff -puN include/linux/fs.h~remove-do_sync-parameter-from-__invalidate_device include/linux/fs.h --- 25/include/linux/fs.h~remove-do_sync-parameter-from-__invalidate_device Wed May 4 13:21:26 2005 +++ 25-akpm/include/linux/fs.h Wed May 4 13:21:26 2005 @@ -1367,7 +1367,7 @@ extern int fs_may_remount_ro(struct supe extern int check_disk_change(struct block_device *); extern int invalidate_inodes(struct super_block *); -extern int __invalidate_device(struct block_device *, int); +extern int __invalidate_device(struct block_device *); extern int invalidate_partition(struct gendisk *, int); unsigned long invalidate_mapping_pages(struct address_space *mapping, pgoff_t start, pgoff_t end); _