Re: which ioctls matter across filesystems

Steve French
2005-04-29T20:48:40Z

Robert Love wrote:

>>What about inotify makes it insufficient for your needs?
>>
>>
>>
I am not sure - but it is obviously required that inotify can pass over
CIFS (and probably NFS) since change notification is hardest for the
user to figure out when they are on a network. I am not sure how the
filesystem can detect that a new watch is added to one of its inodes -
it looks like you added an ioctl to a device but I am still reading
through your latest patch. I was looking for something like an inode
operation that cifs could hook so the fs could be told when a new watch
was added or one was changed. In any case I need to construct
functions somewhat similar to what is in fs/cifs/fcntl.c and need to
finish/modify CIFSSMBNotify in fs/cifs/cifssmb.c to map the inotify
flags to the flags available in the CIFS network protocol specifications.
The existing network protocol support for ChangeNotify is more
straightforward than you might think and the filter flags & actions that
I have at my disposal for implementing notify across the network are in
fs/cifs/cifspdu.h already (search for FILE_ACTION_ and FILE_NOTIFY_ if
you are curious) but obviously they are similar to what the other Samba
team guys have already told you.

>>What kind of real-world applications exist out there that need inotify
>>functionality, and what sort of requirements do they have (in particular
>>w.r.t. the notification mechanism)?
>>
>>
>
>A few worksets:
>
> - Current users, such as FAM and Samba, that need simple file
> change notification
> - Random applications that want to watch a file or two
> - The Linux desktop
> - Real-time live-updating indexing systems, such as Beagle,
> that compete with f.e. Apple's Spotlight.
>
>Best,
>
> Robert Love
>
strongly agree, very strongly agree.

The one example we left out - distributed backup applications (those
guys query me from time to time asking for improvements) - they want to
know when a server file changes so they can do backup across CIFS.