From ed280c7ee6837145b59738e060e4c8fdf94c08c7 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sat, 16 May 2015 00:31:38 +0100 Subject: [PATCH] devio: d_flush of a flush incapable device is not an error Fixes mount, mkdir and other odd failures --- Kernel/devio.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Kernel/devio.c b/Kernel/devio.c index 282bde34..6eed6475 100644 --- a/Kernel/devio.c +++ b/Kernel/devio.c @@ -280,9 +280,14 @@ int d_ioctl(uint16_t dev, uint16_t request, char *data) int d_flush(uint16_t dev) { - if (!validdev(dev)) - panic("d_flush: bad device"); - return (*dev_tab[major(dev)].dev_ioctl) (minor(dev), BLKFLSBUF, 0); + /* Not as clean as would be ideal : FIXME */ + int r = d_ioctl(dev, BLKFLSBUF, 0); + /* Not knowing the ioctl is not an offence */ + if (r && udata.u_error == ENOTTY) { + udata.u_error = 0; + r = 0; + } + return r; } /* -- 2.34.1