[PATCH 08/13] loop: Remove memory barriers
Bart Van Assche <[email protected]>
| Newsgroups | org.kernel.vger.linux-block |
|---|---|
| Message-ID | <cf31f79daae5225f4f2a87680a7e7ae90616bdd9.1787255652.git.bvanassche@acm.org> |
Now that all lo_state and lo_backing_file accesses from the control path are serialized by lo_mutex, it is no longer necessary to use memory barriers to order the lo_state and lo_backing_file accesses. Hence, remove these memory barriers. While several lockless accesses of these two member variables remain in the I/O path, these are serialized with backing file changes by freezing the request queue. See also loop_change_fd(). Signed-off-by: Bart Van Assche <[email protected]> --- drivers/block/loop.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 8b633ea6e72f..93b589bc6e3d 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -515,11 +515,6 @@ static struct file *loop_get_backing_file(struct loop_device *lo) { if (lo->lo_state != Lo_bound) return NULL; - /* - * Order wrt setting lo->lo_backing_file in - * loop_configure(). - */ - rmb(); return get_file(lo->lo_backing_file); } @@ -1149,9 +1144,6 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode, size = lo_calculate_size(lo, file); loop_set_size(lo, size); - /* Order wrt reading lo_state in loop_validate_file(). */ - wmb(); - WRITE_ONCE(lo->lo_state, Lo_bound); if (part_shift) lo->lo_flags |= LO_FLAGS_PARTSCAN;