From 521b3bb500e0652d90995cb32a08f0d5fb262256 Mon Sep 17 00:00:00 2001 From: wangjianyu3 Date: Tue, 2 Jan 2024 17:01:28 +0800 Subject: [PATCH] drivers/bch: ioctl() - BIOC_FLUSH: Add calling ioctl() of block driver Passing `BIOC_FLUSH` to block driver to ensure that changes transfers ("flushes") to the block device Signed-off-by: wangjianyu3 --- drivers/bch/bchdev_driver.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/drivers/bch/bchdev_driver.c b/drivers/bch/bchdev_driver.c index f0c61a8137..6fbea4e8ec 100644 --- a/drivers/bch/bchdev_driver.c +++ b/drivers/bch/bchdev_driver.c @@ -420,14 +420,6 @@ static int bch_ioctl(FAR struct file *filep, int cmd, unsigned long arg) } break; - case BIOC_FLUSH: - { - /* Flush any dirty pages remaining in the cache */ - - ret = bchlib_flushsector(bch, false); - } - break; - #ifdef CONFIG_BCH_ENCRYPTION /* This is a request to set the encryption key? */ @@ -439,9 +431,20 @@ static int bch_ioctl(FAR struct file *filep, int cmd, unsigned long arg) break; #endif - /* Otherwise, pass the IOCTL command on to the contained block - * driver. - */ + case BIOC_FLUSH: + { + /* Flush any dirty pages remaining in the cache */ + + ret = bchlib_flushsector(bch, false); + if (ret < 0) + { + break; + } + + /* Go through */ + } + + /* Pass the IOCTL command on to the contained block driver. */ default: {