From eba4a485b224ae259700b960fe63abf2463a33aa Mon Sep 17 00:00:00 2001 From: mav Date: Tue, 13 Aug 2013 07:56:40 +0000 Subject: Return error when opening read-only volumes (like RAID4/5/...) for writing. Previously opens succeeded, but actual write operations returned errors. Requested by: peter MFC after: 2 weeks --- sys/geom/raid/g_raid.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'sys/geom/raid/g_raid.c') diff --git a/sys/geom/raid/g_raid.c b/sys/geom/raid/g_raid.c index fd6d69c..41a1f96 100644 --- a/sys/geom/raid/g_raid.c +++ b/sys/geom/raid/g_raid.c @@ -1863,6 +1863,11 @@ g_raid_access(struct g_provider *pp, int acr, int acw, int ace) error = ENXIO; goto out; } + /* Deny write opens for read-only volumes. */ + if (vol->v_read_only && acw > 0) { + error = EROFS; + goto out; + } if (dcw == 0) g_raid_clean(vol, dcw); vol->v_provider_open += acr + acw + ace; -- cgit v1.1