Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dm cache metadata: fix READ_LOCK macros and cleanup WRITE_LOCK macros
The READ_LOCK macro was incorrectly returning -EINVAL if dm_bm_is_read_only() was true -- it will always be true once the cache metadata transitions to read-only by dm_cache_metadata_set_read_only(). Wrap READ_LOCK and WRITE_LOCK multi-statement macros in do {} while(0). Also, all accesses of the 'cmd' argument passed to these related macros are now encapsulated in parenthesis. A follow-up patch can be developed to eliminate the use of macros in favor of pure C code. Avoiding that now given that this needs to apply to stable@. Reported-by: Ben Hutchings <[email protected]> Signed-off-by: Mike Snitzer <[email protected]> Fixes: d14fcf3 ("dm cache: make sure every metadata function checks fail_io") Cc: [email protected]
- Loading branch information