fs: sdfat: __sdfat_submit_bio_write() should always submit a WRITE
authorKevin F. Haggerty <haggertk@lineageos.org>
Fri, 4 Jun 2021 02:33:21 +0000 (20:33 -0600)
committerDanny Wood <danwood76@gmail.com>
Tue, 28 Sep 2021 12:06:40 +0000 (13:06 +0100)
commitc972033d326606a0ee3c909b37d8e11c76e35bb0
treeedc6aed05d23efaf86427b5093d2b083de5cb44a
parent4b412992fd389da57eef59278e9e48d88edf9a55
fs: sdfat: __sdfat_submit_bio_write() should always submit a WRITE

sdfat version 2.4.5 introduced wbc_to_write_flags() as a compat
function for legacy kernels. Unfortunately, as the legacy
__sdfat_submit_bio_write() path was adapted to take advantage of
wbc_to_write_flags(), it used the return value direcly as the
rw paramater to submit_bio(), and the default return value is 0
(READ). This becomes a problem later when write paths assert that
bio_data_dir() is WRITE (i.e., write bit of bio->bi_rw is set).

Pass a bitwise-or of WRITE and the return value of wbc_to_write_flags()
to submit_bio() on this legacy path. This logically unifies the
approach with the newer path here and directly with the legacy path of
__sdfat_submit_bio_write2() in mpage.c.

Fixes: afd489c6a8c8 ("fs: sdfat: Update to version 2.4.5")
Signed-off-by: Kevin F. Haggerty <haggertk@lineageos.org>
Change-Id: Ic7b937a467e9e116c3390c6ac0e009a59229b93c
fs/sdfat/sdfat.c