diff options
author | NeilBrown <neilb@suse.de> | 2014-04-09 12:25:40 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2014-04-09 12:26:59 +1000 |
commit | 035328c202d26a824b8632fd3b00635db5aee5a2 (patch) | |
tree | ea9f5c2d54e7e5397318ba9b91b0b88a33f179ae /drivers/md/bitmap.c | |
parent | 455c6fdbd219161bd09b1165f11699d6d73de11c (diff) | |
download | op-kernel-dev-035328c202d26a824b8632fd3b00635db5aee5a2.zip op-kernel-dev-035328c202d26a824b8632fd3b00635db5aee5a2.tar.gz |
md/bitmap: don't abuse i_writecount for bitmap files.
md bitmap code currently tries to use i_writecount to stop any other
process from writing to out bitmap file. But that is really an abuse
and has bit-rotted so locking is all wrong.
So discard that - root should be allowed to shoot self in foot.
Still use it in a much less intrusive way to stop the same file being
used as bitmap on two different array, and apply other checks to
ensure the file is at least vaguely usable for bitmap storage
(is regular, is open for write. Support for ->bmap is already checked
elsewhere).
Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/bitmap.c')
-rw-r--r-- | drivers/md/bitmap.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index 4195a01..9a8e66a 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c @@ -1988,7 +1988,6 @@ location_store(struct mddev *mddev, const char *buf, size_t len) if (mddev->bitmap_info.file) { struct file *f = mddev->bitmap_info.file; mddev->bitmap_info.file = NULL; - restore_bitmap_write_access(f); fput(f); } } else { |