|
From: Dave A. <ai...@us...> - 2003-06-10 01:15:18
|
Update of /cvsroot/linux-vax/kernel-2.4/Documentation/filesystems In directory sc8-pr-cvs1:/tmp/cvs-serv7538/Documentation/filesystems Modified Files: Locking ntfs.txt Log Message: DA: sync with Marcelo 2.4.17 Index: Locking =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Documentation/filesystems/Locking,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- Locking 25 Feb 2001 23:15:24 -0000 1.1.1.2 +++ Locking 10 Jun 2003 01:13:12 -0000 1.2 @@ -123,6 +123,10 @@ int (*prepare_write)(struct file *, struct page *, unsigned, unsigned); int (*commit_write)(struct file *, struct page *, unsigned, unsigned); int (*bmap)(struct address_space *, long); + int (*flushpage) (struct page *, unsigned long); + int (*releasepage) (struct page *, int); + int (*direct_IO)(int, struct inode *, struct kiobuf *, unsigned long, int); + locking rules: All may block BKL PageLocked(page) @@ -132,6 +136,8 @@ prepare_write: no yes commit_write: no yes bmap: yes +flushpage: no yes +releasepage: no yes ->prepare_write(), ->commit_write(), ->sync_page() and ->readpage() may be called from the request handler (/dev/loop). @@ -144,6 +150,15 @@ filesystems and by the swapper. The latter will eventually go away. All instances do not actually need the BKL. Please, keep it that way and don't breed new callers. + ->flushpage() is called when the filesystem must attempt to drop +some or all of the buffers from the page when it is being truncated. It +returns zero on success. If ->flushpage is zero, the kernel uses +block_flushpage() instead. + ->releasepage() is called when the kernel is about to try to drop the +buffers from the page in preparation for freeing it. It returns zero to +indicate that the buffers are (or may be) freeable. If ->flushpage is zero, +the kernel assumes that the fs has no private interest in the buffers. + Note: currently almost all instances of address_space methods are using BKL for internal serialization and that's one of the worst sources of contention. Normally they are calling library functions (in fs/buffer.c) Index: ntfs.txt =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Documentation/filesystems/ntfs.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ntfs.txt 9 Apr 2002 16:55:41 -0000 1.2 +++ ntfs.txt 10 Jun 2003 01:13:12 -0000 1.3 @@ -98,6 +98,16 @@ ChangeLog ========= +NTFS 1.1.21: + - Fixed bug with reading $MFT where we try to read higher mft records + before having read the $DATA attribute of $MFT. (Note this is only a + partial solution which will only work in the case that the attribute + list is resident or non-resident but $DATA is in the first 1024 + bytes. But this should be enough in the majority of cases. I am not + going to bother fixing the general case until someone finds this to + be a problem for them, which I doubt very much will ever happen...) + - Fixed bogus BUG() call in readdir(). + NTFS 1.1.20: - Fixed two bugs in ntfs_readwrite_attr(). Thanks to Jan Kara for spotting the out of bounds one. |