FS callback routines
Daniel Phillips <[email protected]>:
Quoted 75 lines
Quoted 39 lines · Michael D. Crawford
Regarding notification when there's a change to the filesystem:
This is one of the most significant things about the BeOS BFS filesystem, and something I'd dearly love to see Linux adopt. It makes an app very efficient, you just get notified when a directory changes and you never waste time polling.
I think it would require changes to the VFS layer, not just to the filesystems, because this is a concept POSIX filesystems do not presently possess.
The other is indexed filesystem attributes, for example a file can have its mimetype in the filesystem, and any application can add an attribute and have it indexed.
There's a method to do boolean queries on indexed attributes, and you can find files in an entire filesystem that match a query in a blazingly short time, much faster than walking the directory tree.
If you want to try out the BeOS, there's a free-as-in-beer version at
http://free.be.com for Pentium PC's. You can also purchase a version that comes for both PC's and certain PowerPC macs.There are read-only versions of this for Linux which I believe are under the GPL. The original author is here:
http://hp.vector.co.jp/authors/VA008030/bfs/
He refers you to here to get a version that works under 2.2.16:
The author's intention was to take it read-write, but it's complex because it is a journaling filesystem.
Daniel Berlin, a BeOS developer modified the Linux BFS driver so it works with 2.4.0-test1. I don't know if it works with 2.4.0. The web site where it used to be posted isn't there anymore, and the laptop where I had it is in for repair. I may have it on a backup, and I'll see if I can track Daniel down.
Quoted 4 lines
While Be, Inc.'s implementation is closed-source, the design of the BFS (_not_ "befs" as it is sometimes called) is explained in Practical File System Design with the Be File System by Dominic Giampolo, ISBN 1-55860-497-9. Dominic has since left Be and I understand works at Google now.
fs/dnotify.c:/* * Directory notifications for Linux. * * Copyright (C) 2000 Stephen Rothwell ...The currently defined events are:
DN_ACCESSA file in the directory was accessed (read)
DN_MODIFYA file in the directory was modified (write,truncate)
DN_CREATEA file was created in the directory
DN_DELETEA file was unlinked from directory
DN_RENAMEA file in the directory was renamed
DN_ATTRIBA file in the directory had its attributes
changed (chmod,chown)It was done last year, quietly and without fanfare, by Stephen Rothwell:
http://www.linuxcare.com/about-us/os-dev/rothwell.epl
This may be the most significant new feature in 2.4.0, as it allows us to take a fundamentally different approach to many different problems. Three that come to mind: mail (get your mail instantly without polling); make (don't rely on timestamps to know when rebuilding is needed, don't scan huge directory trees on each build); locate (reindex only those directories that have changed, keep index database current). As you noticed, there are many others.
Quoted 3 lines
Stephen, it would be very interesting to know more about the development process you went through and what motivated you to provide this fundamental facility.
It would also be very nice if the security of the feature could be confirmed. The problem with SGI's implementation is that it becomes possible to monitor files that you don't own, don't have access to, or are not permitted to know even exist. For these reasons, we have disabled the feature.
-------------------------------------------------------------------------
Jesse I Pollard, II
Email: [email protected]
Any opinions expressed are solely my own.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
Quoted 10 lines · Jesse Pollard
Daniel Phillips <[email protected]>:
Quoted 8 lines
This may be the most significant new feature in 2.4.0, as it allows us to take a fundamentally different approach to many different problems. Three that come to mind: mail (get your mail instantly without polling); make (don't rely on timestamps to know when rebuilding is needed, don't scan huge directory trees on each build); locate (reindex only those directories that have changed, keep index database current). As you noticed, there are many others.
...
Quoted 4 lines
It would also be very nice if the security of the feature could be confirmed. The problem with SGI's implementation is that it becomes possible to monitor files that you don't own, don't have access to, or are not permitted to know even exist.
To receive notification about events in a given directory you have to be able to open it. Is this adequate for your needs?
Quoted 1 line
For these reasons, we have disabled the feature.
It's nice to have that option, isn't it? ;-)
--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
Quoted 7 lines · Daniel Phillips
Quoted 4 lines
It would also be very nice if the security of the feature could be confirmed. The problem with SGI's implementation is that it becomes possible to monitor files that you don't own, don't have access to, or are not permitted to know even exist.
To receive notification about events in a given directory you have to be able to open it. Is this adequate for your needs?
No, because to open a directory you only nead read permission, whereas to read attributes of files in the directory, you need execute permission on the directory.
Also, you are getting notifications for unlinked files, which perhaps you should not be able to know anything about. (If the directory wasn't accessible when the file was unlinked for example, but was made accessible later).
-- Jamie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/