> But it doesn't fix the read-only snapshot issue and I guess there will be > the same problem with read-only MD code too. > (so the 2) issue here https://lkml.org/lkml/2011/2/12/209). I am not sure if this is complete fix... note that: - what happens during mirror resync and read-only log? - for COW, it there situation we need to update header in read-oly mode? (invalidated snap?) Milan -- [RFC] Do not open log and cow device read-write for read-only mappings Signed-off-by: Milan Broz <mbroz@xxxxxxxxxx> diff --git a/drivers/md/dm-log.c b/drivers/md/dm-log.c index 6951536..8e8a868 100644 --- a/drivers/md/dm-log.c +++ b/drivers/md/dm-log.c @@ -543,7 +543,7 @@ static int disk_ctr(struct dm_dirty_log *log, struct dm_target *ti, return -EINVAL; } - r = dm_get_device(ti, argv[0], FMODE_READ | FMODE_WRITE, &dev); + r = dm_get_device(ti, argv[0], dm_table_get_mode(ti->table), &dev); if (r) return r; diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c index fdde53c..a2d3309 100644 --- a/drivers/md/dm-snap.c +++ b/drivers/md/dm-snap.c @@ -1080,7 +1080,7 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv) argv++; argc--; - r = dm_get_device(ti, cow_path, FMODE_READ | FMODE_WRITE, &s->cow); + r = dm_get_device(ti, cow_path, dm_table_get_mode(ti->table), &s->cow); if (r) { ti->error = "Cannot get COW device"; goto bad_cow; -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel