diff options
Diffstat (limited to 'sys-utils/fstrim.c')
-rw-r--r-- | sys-utils/fstrim.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys-utils/fstrim.c b/sys-utils/fstrim.c index 105ee89e7..2d5c0b74e 100644 --- a/sys-utils/fstrim.c +++ b/sys-utils/fstrim.c @@ -137,7 +137,7 @@ static int has_discard(const char *devname, struct path_cxt **wholedisk) struct path_cxt *pc = NULL; uint64_t dg = 0; dev_t disk = 0, dev; - int rc = -1; + int rc = -1, rdonly = 0; dev = sysfs_devname_to_devno(devname); if (!dev) @@ -175,9 +175,11 @@ static int has_discard(const char *devname, struct path_cxt **wholedisk) } rc = ul_path_read_u64(pc, &dg, "queue/discard_granularity"); + if (!rc) + ul_path_scanf(pc, "ro", "%d", &rdonly); ul_unref_path(pc); - return rc == 0 && dg > 0; + return rc == 0 && dg > 0 && rdonly == 0; fail: ul_unref_path(pc); return 1; |