
From: Christoph Hellwig <hch@lst.de>

The only caller that ever sets it can call fsync_bdev itself easily.  Also
update some comments.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 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 <linux/slab.h>
 #include <linux/kmod.h>
 #include <linux/kobj_map.h>
+#include <linux/buffer_head.h>
 
 #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);
_
