mirror of
https://github.com/apache/nuttx.git
synced 2025-01-13 05:08:41 +08:00
drivers/bch/bchdev_driver.c: Fix BIOC_FLUSH
Don't fail if the lowerhalf mtd driver doesn't support BIOC_FLUSH; This is normal - if the lowerhalf has nothing to do, it doesn't handle the IOCTL. Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
This commit is contained in:
parent
1200d49b83
commit
925b8b0904
1 changed files with 18 additions and 3 deletions
|
@ -437,16 +437,31 @@ static int bch_ioctl(FAR struct file *filep, int cmd, unsigned long arg)
|
|||
|
||||
case BIOC_FLUSH:
|
||||
{
|
||||
FAR struct inode *bchinode = bch->inode;
|
||||
int ret2 = -ENOTTY;
|
||||
|
||||
/* Flush any dirty pages remaining in the cache */
|
||||
|
||||
ret = bchlib_flushsector(bch, false);
|
||||
if (ret < 0)
|
||||
|
||||
/* Also pass the IOCTL command to the contained block driver */
|
||||
|
||||
if (bchinode->u.i_bops->ioctl != NULL)
|
||||
{
|
||||
break;
|
||||
ret2 = bchinode->u.i_bops->ioctl(bchinode, cmd, arg);
|
||||
}
|
||||
|
||||
/* Go through */
|
||||
/* If the lowerhalf supports BIOC_FLUSH, and flushsector succeeded,
|
||||
* return the error code from the lowerhalf. Otherwise just return
|
||||
* the error code from bchlib_flushsector
|
||||
*/
|
||||
|
||||
if (ret2 != -ENOTTY && ret == OK)
|
||||
{
|
||||
ret = ret2;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
/* Pass the IOCTL command on to the contained block driver. */
|
||||
|
||||
|
|
Loading…
Reference in a new issue