Calling TRIM on some read-only volumes can fail with: fstrim: /win: FITRIM ioctl failed: Bad file descriptor Skipping all read-only mounts seems to be safe and logical strategy. Fixes opensuse#1106214. Signed-off-by: Stanislav Brabec <sbrabec@xxxxxxx> --- sys-utils/fstrim.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys-utils/fstrim.c b/sys-utils/fstrim.c index 0491e2b54..e0e9e57a9 100644 --- a/sys-utils/fstrim.c +++ b/sys-utils/fstrim.c @@ -328,6 +328,14 @@ static int fstrim_all(struct fstrim_control *ctl) if (rc) continue; /* overlaying mount */ + /* FSTRIM on read-only filesystem can fail, and it can fail */ + if (access(path, W_OK) != 0) { + if (errno == EROFS) + continue; + if (errno == EACCES) + continue; + } + if (!has_discard(src, &wholedisk)) continue; cnt++; -- 2.21.0 -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@xxxxxxxx Křižíkova 148/34 (Corso IIa) tel: +420 284 084 060 186 00 Praha 8-Karlín fax: +420 284 084 001 Czech Republic http://www.suse.cz/ PGP: 830B 40D5 9E05 35D8 5E27 6FA3 717C 209F A04F CD76