On Mon, 2026-02-09 at 09:23 -0500, Stefan Hajnoczi wrote:
> On Mon, Feb 09, 2026 at 01:50:00PM +0100, Hannes Reinecke wrote:
> > 
> > My concern with opening the block device with BLK_OPEN_WRITE is
> > that
> > this will trigger udev to 'synthesize' (ie regenerate) an 'add'
> > event
> > on close, causing 'interesting' effects as this will cascade down
> > through the udev rule chain, triggering blkid, partition scan, you
> > name it.
> > Horrible, horrible, horrible.
> > Don't do it.
> > 
> > Especially not as you are only interested in reading information,
> > and not changing the disk state in any way.
> 
> I see. I will send patches to change blkdev_pr_read_keys()
> blkdev_pr_read_reservation() to require only BLK_OPEN_READ.

Hm, but then if you need to make an actual reservation and call e.g.
blkdev_pr_reserve(), you'll need to re-open the device r/w, and have
the same problem. I'm not sure I understand the issue here ... doesn't
your process have an open fd to the device in question anyway? You just
need to be sure not to _close_ it, as that's what causes the uevents
(udev uses an IN_CLOSE_WRITE inotify(7) event on the device node).

Another option would be to temporarily disable the udev "watch"
property for the device(s) in question.

Regards
Martin

Reply via email to