On Wed, Apr 29, 2015 at 05:48:14PM +0200, Beata Michalska wrote:
On 04/29/2015 03:45 PM, Greg KH wrote:
quoted
On Wed, Apr 29, 2015 at 01:10:34PM +0200, Beata Michalska wrote:
quoted
quoted
quoted
quoted
It needs to be done internally by the app but is doable.
The app knows what it is watching, so it can maintain the mappings.
So prior to activating the notifications it can call 'stat' on the mount point.
Stat struct gives the 'st_dev' which is the device id. Same will be reported
within the message payload (through major:minor numbers). So having this,
the app is able to get any other information it needs.
Note that the events refer to the file system as a whole and they may not
necessarily have anything to do with the actual block device.
How are you going to show an event for a filesystem that is made up of
multiple block devices?
AFAIK, for such filesystems there will be similar case with the anonymous
major:minor numbers - at least the btrfs is doing so. Not sure we can
differentiate here the actual block device. So in this case such events
serves merely as a hint for the userspace.
"hint" seems like this isn't really going to work well.
Do you have userspace code that can properly map this back to the "real"
device that is causing problems? Without that, this doesn't seem all
that useful as no one would be able to use those events.
I'm not sure we are on the same page here.
This is about watching the file system rather than the 'real' device.
Like the threshold notifications: you would like to know when you
will be approaching certain level of available space for the tmpfs
mounted on /tmp. You do know you are watching the /tmp
and you know that the dev numbers for this are 0:20 (or so).
(either through calling stat on /tmp or through reading the /proc/$$/mountinfo)
With this interface you can setup threshold levels
for /tmp. Then, once the limit is reached the event will be
sent with those anonymous major:minor numbers.
I can provide a sample code which will demonstrate how this
can be achieved.
Yes, example code would be helpful to understand this, thanks.
greg k-h