Messages in this thread | | | Date | Sat, 21 Nov 2009 19:03:54 +0100 | From | Anders Larsen <> | Subject | Re: [PATCH 13/15] Do not fallback to default_llseek() when readdir() uses BKL |
| |
On 2009-11-20 17:40:43, Jan Blunck wrote: > Do not use the fallback default_llseek() if the readdir operation of > the > filesystem still uses the big kernel lock. Since llseek() modifies > file->f_pos of the directory directly it may need locking to not > confuse > readdir which usually uses file->f_pos directly as well. Since the > special > characteristics of the BKL (unlocked on schedule) are not necessary > in this > case, the inode mutex can be used for locking as provided by > generic_file_llseek(). This is only possible since all filesystems, > except > reiserfs, either use a directory as a flat file or with disk address > offsets. Reiserfs on the other hand uses a 32bit hash off the > filename as > the offset so generic_file_llseek() can get used as well since the > hash is > always smaller than sb->s_maxbytes (= (512 << 32) - blocksize). > > Signed-off-by: Jan Blunck <jblunck@suse.de> > ---
wrt fs/qnx4: Acked-by: Anders Larsen <al@alarsen.net>
| |