aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/bitmap.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2006-06-26 03:27:47 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-26 12:58:38 -0400
commitacc55e220166a5ad898e66ad6153fd62eaaac76d (patch)
treec342dcd3303f01d97c5fe7718af9daf22ec086d2 /drivers/md/bitmap.c
parent0cdd02cabd86b5d547f882005e23a93929f0ace9 (diff)
[PATCH] md/bitmap: tidy up i_writecount handling in md/bitmap
md/bitmap modifies i_writecount of a bitmap file to make sure that no-one else writes to it. The reverting of the change is sometimes done twice, and there is one error path where it is omitted. This patch tidies that up. Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/md/bitmap.c')
-rw-r--r--drivers/md/bitmap.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index dfe5e12741ba..e40d3e4b8d27 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -625,7 +625,6 @@ static void drain_write_queues(struct bitmap *bitmap)
625static void bitmap_file_put(struct bitmap *bitmap) 625static void bitmap_file_put(struct bitmap *bitmap)
626{ 626{
627 struct file *file; 627 struct file *file;
628 struct inode *inode;
629 unsigned long flags; 628 unsigned long flags;
630 629
631 spin_lock_irqsave(&bitmap->lock, flags); 630 spin_lock_irqsave(&bitmap->lock, flags);
@@ -637,13 +636,8 @@ static void bitmap_file_put(struct bitmap *bitmap)
637 636
638 bitmap_file_unmap(bitmap); 637 bitmap_file_unmap(bitmap);
639 638
640 if (file) { 639 if (file)
641 inode = file->f_mapping->host;
642 spin_lock(&inode->i_lock);
643 atomic_set(&inode->i_writecount, 1); /* allow writes again */
644 spin_unlock(&inode->i_lock);
645 fput(file); 640 fput(file);
646 }
647} 641}
648 642
649 643