Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: dm cache: fix write hang in passthrough mode The invalidate_remove() function has incomplete logic for handling write hit bios after cache invalidation. It sets up the remapping for the overwrite_bio but then drops it immediately without submission, causing write operations to hang. Fix by adding a new invalidate_committed() continuation that submits the remapped writes to the cache origin after metadata commit completes, while using the overwrite_endio hook to ensure proper completion sequencing. This maintains existing coherency. Also improve error handling in invalidate_complete() to preserve the original error status instead of using bio_io_error() unconditionally.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected b29d4986d0da1a27cd35917cdb433672f5c95d7f before 9fa18d0b981776b190ca4632942a7c2174052b78; affected b29d4986d0da1a27cd35917cdb433672f5c95d7f before ecb10c193cbebf5e6984246a9b4ff1f95d45ed87; affected b29d4986d0da1a27cd35917cdb433672f5c95d7f before 64d6519b00be4116d365bd31f33a5e5ce2944c1a; affected b29d4986d0da1a27cd35917cdb433672f5c95d7f before b8ace9e96983abb20ccf39edce8a60f1bb0b83d8; affected b29d4986d0da1a27cd35917cdb433672f5c95d7f before 05798d091ebcfb6d68228890e593f209e8ac940d; affected b29d4986d0da1a27cd35917cdb433672f5c95d7f before 4ca8b8bd952df7c3ccdc68af9bd3419d0839a04b |
| Linux / Linux | affected 4.12; unaffected 0 before 4.12; unaffected 6.1.175 through 6.1.*; unaffected 6.6.141 through 6.6.*; unaffected 6.12.91 through 6.12.*; unaffected 6.18.33 through 6.18.*; unaffected 7.0.10 through 7.0.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/9fa18d0b981776b190ca4632942a7c2174052b78
- https://git.kernel.org/stable/c/ecb10c193cbebf5e6984246a9b4ff1f95d45ed87
- https://git.kernel.org/stable/c/64d6519b00be4116d365bd31f33a5e5ce2944c1a
- https://git.kernel.org/stable/c/b8ace9e96983abb20ccf39edce8a60f1bb0b83d8
- https://git.kernel.org/stable/c/05798d091ebcfb6d68228890e593f209e8ac940d
- https://git.kernel.org/stable/c/4ca8b8bd952df7c3ccdc68af9bd3419d0839a04b