diff options
author | Artur Paszkiewicz <artur.paszkiewicz@intel.com> | 2017-05-08 11:56:55 +0200 |
---|---|---|
committer | Shaohua Li <shli@fb.com> | 2017-05-08 10:32:59 -0700 |
commit | 2214c260c72b0bd94e6c1c19bf451686212025d3 (patch) | |
tree | 829a3494857d6bd61c38171a39e2e207de585e38 /drivers/md/md.h | |
parent | 3d05f3aed5d721c2c77d20288c29ab26c6193ed5 (diff) | |
download | linux-stable-2214c260c72b0bd94e6c1c19bf451686212025d3.tar.gz linux-stable-2214c260c72b0bd94e6c1c19bf451686212025d3.tar.bz2 linux-stable-2214c260c72b0bd94e6c1c19bf451686212025d3.zip |
md: don't return -EAGAIN in md_allow_write for external metadata arrays
This essentially reverts commit b5470dc5fc18 ("md: resolve external
metadata handling deadlock in md_allow_write") with some adjustments.
Since commit 6791875e2e53 ("md: make reconfig_mutex optional for writes
to md sysfs files.") changing array_state to 'active' does not use
mddev_lock() and will not cause a deadlock with md_allow_write(). This
revert simplifies userspace tools that write to sysfs attributes like
"stripe_cache_size" or "consistency_policy" because it removes the need
for special handling for external metadata arrays, checking for EAGAIN
and retrying the write.
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'drivers/md/md.h')
-rw-r--r-- | drivers/md/md.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/md.h b/drivers/md/md.h index 4e75d121bfcc..11f15146ce51 100644 --- a/drivers/md/md.h +++ b/drivers/md/md.h @@ -665,7 +665,7 @@ extern int sync_page_io(struct md_rdev *rdev, sector_t sector, int size, bool metadata_op); extern void md_do_sync(struct md_thread *thread); extern void md_new_event(struct mddev *mddev); -extern int md_allow_write(struct mddev *mddev); +extern void md_allow_write(struct mddev *mddev); extern void md_wait_for_blocked_rdev(struct md_rdev *rdev, struct mddev *mddev); extern void md_set_array_sectors(struct mddev *mddev, sector_t array_sectors); extern int md_check_no_bitmap(struct mddev *mddev); |