diff options
author | Josh Triplett <josht@us.ibm.com> | 2006-07-30 06:04:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-31 16:28:44 -0400 |
commit | bc65ac6a0ffc66c56d1e6893685d7fe87c63cc44 (patch) | |
tree | 8c8bde036220b27361e864249c4961fdc2591eca | |
parent | 0a5eca6530eb4d0120981936058537c24a2f92ce (diff) |
[PATCH] freevxfs: Add missing lock_kernel() to vxfs_readdir
Commit 7b2fd697427e73c81d5fa659efd91bd07d303b0e in the historical GIT tree
stopped calling the readdir member of a file_operations struct with the big
kernel lock held, and fixed up all the readdir functions to do their own
locking. However, that change added calls to unlock_kernel() in
vxfs_readdir, but no call to lock_kernel(). Fix this by adding a call to
lock_kernel().
Signed-off-by: Josh Triplett <josh@freedesktop.org>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | fs/freevxfs/vxfs_lookup.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/freevxfs/vxfs_lookup.c b/fs/freevxfs/vxfs_lookup.c index 29cce456c7ce..43886fa00a2a 100644 --- a/fs/freevxfs/vxfs_lookup.c +++ b/fs/freevxfs/vxfs_lookup.c | |||
@@ -246,6 +246,8 @@ vxfs_readdir(struct file *fp, void *retp, filldir_t filler) | |||
246 | u_long page, npages, block, pblocks, nblocks, offset; | 246 | u_long page, npages, block, pblocks, nblocks, offset; |
247 | loff_t pos; | 247 | loff_t pos; |
248 | 248 | ||
249 | lock_kernel(); | ||
250 | |||
249 | switch ((long)fp->f_pos) { | 251 | switch ((long)fp->f_pos) { |
250 | case 0: | 252 | case 0: |
251 | if (filler(retp, ".", 1, fp->f_pos, ip->i_ino, DT_DIR) < 0) | 253 | if (filler(retp, ".", 1, fp->f_pos, ip->i_ino, DT_DIR) < 0) |