diff options
| author | Andrew Morton <akpm@zip.com.au> | 2002-04-29 23:54:28 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-04-29 23:54:28 -0700 |
| commit | b960fa03cf2bd5ccd37ebe5cc4d0b46d69e4519a (patch) | |
| tree | 7717517da191e45eda8ed4004620ccf21229b2a6 | |
| parent | a2bcb3a084f4312844639e18cbe7eb7256c7c23c (diff) | |
[PATCH] cleanup sync_buffers()
Renames sync_buffers() to sync_blockdev() and removes its (never used)
second argument.
Removes fsync_no_super() in favour of direct calls to sync_blockdev().
| -rw-r--r-- | fs/block_dev.c | 13 | ||||
| -rw-r--r-- | fs/buffer.c | 41 | ||||
| -rw-r--r-- | fs/ext3/super.c | 2 | ||||
| -rw-r--r-- | fs/jbd/recovery.c | 2 | ||||
| -rw-r--r-- | fs/jfs/jfs_logmgr.c | 2 | ||||
| -rw-r--r-- | include/linux/buffer_head.h | 2 | ||||
| -rw-r--r-- | kernel/ksyms.c | 1 |
7 files changed, 20 insertions, 43 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c index 5add2e4911d0..cd8ecc79536c 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -84,7 +84,7 @@ int set_blocksize(kdev_t dev, int size) /* Ok, we're actually changing the blocksize.. */ bdev = bdget(kdev_t_to_nr(dev)); - sync_buffers(bdev, 2); + sync_blockdev(bdev); blksize_size[major(dev)][minor(dev)] = size; bdev->bd_inode->i_blkbits = blksize_bits(size); kill_bdev(bdev); @@ -180,11 +180,6 @@ static loff_t block_llseek(struct file *file, loff_t offset, int origin) return retval; } -static int __block_fsync(struct inode * inode) -{ - return sync_buffers(inode->i_bdev, 1); -} - /* * Filp may be NULL when we are called by an msync of a vma * since the vma has no handle. @@ -194,7 +189,7 @@ static int block_fsync(struct file *filp, struct dentry *dentry, int datasync) { struct inode * inode = dentry->d_inode; - return __block_fsync(inode); + return sync_blockdev(inode->i_bdev); } /* @@ -693,10 +688,8 @@ int blkdev_put(struct block_device *bdev, int kind) lock_kernel(); switch (kind) { case BDEV_FILE: - __block_fsync(bd_inode); - break; case BDEV_FS: - fsync_no_super(bdev); + sync_blockdev(bd_inode->i_bdev); break; } if (!--bdev->bd_openers) diff --git a/fs/buffer.c b/fs/buffer.c index 9f1660083c25..2fda0396498a 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -203,42 +203,27 @@ void end_buffer_io_sync(struct buffer_head *bh, int uptodate) } /* - * write out all the dirty data associated with a block device - * via its mapping. Does not take the superblock lock. - * - * If `wait' is true, wait on the writeout. - * - * FIXME: rename this function. + * Write out and wait upon all the dirty data associated with a block + * device via its mapping. Does not take the superblock lock. */ -int sync_buffers(struct block_device *bdev, int wait) +int sync_blockdev(struct block_device *bdev) { - int ret; + int ret = 0; - ret = filemap_fdatawrite(bdev->bd_inode->i_mapping); - if (wait) { + if (bdev) { int err; + ret = filemap_fdatawait(bdev->bd_inode->i_mapping); + err = filemap_fdatawrite(bdev->bd_inode->i_mapping); + if (!ret) + ret = err; err = filemap_fdatawait(bdev->bd_inode->i_mapping); if (!ret) ret = err; } return ret; } - -/* - * Write out all the dirty data associated with a block device - * via its mapping. Does not take the superblock lock. - * - * Wait on the writeout. - */ -int fsync_no_super(struct block_device *bdev) -{ - int ret = 0; - - if (bdev) - ret = sync_buffers(bdev, 1); - return ret; -} +EXPORT_SYMBOL(sync_blockdev); /* * Write out and wait upon all dirty data associated with this @@ -254,7 +239,7 @@ int fsync_super(struct super_block *sb) sb->s_op->write_super(sb); unlock_super(sb); - return fsync_no_super(sb->s_bdev); + return sync_blockdev(sb->s_bdev); } /* @@ -270,7 +255,7 @@ int fsync_bdev(struct block_device *bdev) drop_super(sb); return res; } - return fsync_no_super(bdev); + return sync_blockdev(bdev); } /* @@ -324,7 +309,7 @@ int file_fsync(struct file *filp, struct dentry *dentry, int datasync) unlock_super(sb); /* .. finally sync the buffers to disk */ - ret = sync_buffers(sb->s_bdev, 1); + ret = sync_blockdev(sb->s_bdev); return ret; } diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 4f742c2affa4..f5f2088c708e 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c @@ -438,7 +438,7 @@ void ext3_put_super (struct super_block * sb) * floating about in memory - the physical journal device may * hotswapped, and it breaks the `ro-after' testing code. */ - fsync_no_super(sbi->journal_bdev); + sync_blockdev(sbi->journal_bdev); invalidate_bdev(sbi->journal_bdev, 0); ext3_blkdev_remove(sbi); } diff --git a/fs/jbd/recovery.c b/fs/jbd/recovery.c index 89be120c1d21..d32693a96bea 100644 --- a/fs/jbd/recovery.c +++ b/fs/jbd/recovery.c @@ -260,7 +260,7 @@ int journal_recover(journal_t *journal) journal->j_transaction_sequence = ++info.end_transaction; journal_clear_revoke(journal); - fsync_no_super(journal->j_fs_dev); + sync_blockdev(journal->j_fs_dev); return err; } diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c index 2fb6ffabc714..513b1682aea7 100644 --- a/fs/jfs/jfs_logmgr.c +++ b/fs/jfs/jfs_logmgr.c @@ -1432,7 +1432,7 @@ static int lmLogShutdown(log_t * log) * We need to make sure all of the "written" metapages * actually make it to disk */ - fsync_no_super(log->sb->s_bdev); + sync_blockdev(log->sb->s_bdev); /* * write the last SYNCPT record with syncpoint = 0 diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index 59fe771f9eb8..f9158122b3f7 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -161,7 +161,7 @@ void set_buffer_async_io(struct buffer_head *bh); void invalidate_inode_buffers(struct inode *); void invalidate_bdev(struct block_device *, int); void __invalidate_buffers(kdev_t dev, int); -int sync_buffers(struct block_device *, int); +int sync_blockdev(struct block_device *bdev); void __wait_on_buffer(struct buffer_head *); void sleep_on_buffer(struct buffer_head *bh); void wake_up_buffer(struct buffer_head *bh); diff --git a/kernel/ksyms.c b/kernel/ksyms.c index 44d30bf0041c..2dcb08756890 100644 --- a/kernel/ksyms.c +++ b/kernel/ksyms.c @@ -184,7 +184,6 @@ EXPORT_SYMBOL(invalidate_inode_pages); EXPORT_SYMBOL(truncate_inode_pages); EXPORT_SYMBOL(fsync_dev); EXPORT_SYMBOL(fsync_bdev); -EXPORT_SYMBOL(fsync_no_super); EXPORT_SYMBOL(permission); EXPORT_SYMBOL(vfs_permission); EXPORT_SYMBOL(inode_setattr); |
