From: Alan Cox Date: Fri, 15 May 2015 23:31:38 +0000 (+0100) Subject: devio: d_flush of a flush incapable device is not an error X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=ed280c7ee6837145b59738e060e4c8fdf94c08c7;p=FUZIX.git devio: d_flush of a flush incapable device is not an error Fixes mount, mkdir and other odd failures --- 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; } /*