Re: [PATCH] 2.5: push BKL out of llseek

Robert Love (rml@tech9.net)
29 Jan 2002 21:24:38 -0500


On Tue, 2002-01-29 at 19:52, Linus Torvalds wrote:

> Doing it in the low-level filesystem would match how we now do it inside
> generic_file_write() - ie the locking is done by the low-level filesystem,
> but most low-level filesystems choose to use a generic helper function.

OK. Hopefully the inode semaphore works ...

> And I think your patch is slightly wrong:
>
> > + down(&file->f_dentry->d_inode->i_sem);
>
> That should really be:
>
> file->f_dentry->d_inode->i_mapping->host->i_sem
>
> to get the hosted filesystem case right (ie coda).

Ahh, learn something ;-)

Robert Love

--- linux-2.5.3-pre6/fs/read_write.c Mon Jan 28 18:30:22 2002
+++ linux/fs/read_write.c Tue Jan 29 19:29:32 2002
@@ -84,9 +84,9 @@
fn = default_llseek;
if (file->f_op && file->f_op->llseek)
fn = file->f_op->llseek;
- lock_kernel();
+ down(&file->f_dentry->d_inode->i_mapping->host->i_sem);
retval = fn(file, offset, origin);
- unlock_kernel();
+ up(&file->f_dentry->d_inode->i_mapping->host->i_sem);
return retval;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/