Sod's law says you find the hole right after you ship the code. There is a
bug in this code, I would not do a cvs update until I get a fix in, I know
roughly how to fix it, but it will take me a while to code and test it.
I would hold off on the cvs tree for a while until you see another message
from me on this thread - probably not today.
Steve
> This problem was reported to the list a while ago as
>
> "Errors using amanda/xfsdump" by Justin Tripp.
>
> It proved to be a nasty problem which has been in there since the original
> implementation, it is a hang over from an Irix / Linux different in what
> comes first, the fs specific data or the fs independent data.
>
> This is a reworking of the implementation based on a suggestion by Al Viro
> to the linux-fsdevel list last year, thanks to Chris Mason for pointing
> me at it.
>
> I have pounded on it here, and so far I do not have any regressions.
> Since this places us more in line with the way other linux filesystems
> do things, and removes some code, it is obviously correct ;-). However,
> please let me know if odd things start to happen to your machine
> after you start using this code.
>
> Steve
>
> Date: Fri May 25 13:33:07 PDT 2001
> Workarea: jen.americas.sgi.com:/src/lord/xfs-linux.2.4
>
> The following file(s) were checked into:
> bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
>
>
> Modid: 2.4.x-xfs:slinx:95990a
> linux/kernel/ksyms.c - 1.89
> - Export icreate4 unlock_new_inode to modules
>
> linux/include/linux/fs.h - 1.93
> - Add new prototype for icreate4 and unlock_new_inode
>
> linux/fs/inode.c - 1.40
> - Replace the xfs special ihold4 with icreate4 - this is a function
> closer to iget, except it does not call read_inode but returns
> a locked hashed inode for the caller to fill in. create_new_inode
> was restructured some to allow for code reuse.
>
> linux/fs/xfs/xfs_iget.c - 1.142
> - Restructure xfs / linux inode interface, we used to have a deadlock c
> ase
> which we recognised with a panic. When xfs needs a new inode internal
> ly
> it goes through icreate, and if this returns a new inode, it calls xf
> s_iget_core
> to read the xfs inode off disk and fill it in. Various other cleanups
> as
> a result of this.
>
> linux/fs/xfs/xfs_inode.h - 1.149
> - prototype change
>
> linux/fs/xfs/linux/xfs_vnode.c - 1.64
> - Restructure xfs / linux inode interface, we used to have a deadlock c
> ase
> which we recognised with a panic. When xfs needs a new inode internal
> ly
> it goes through icreate, and if this returns a new inode, it calls xf
> s_iget_core
> to read the xfs inode off disk and fill it in. Various other cleanups
> as
> a result of this.
>
> linux/fs/xfs/linux/xfs_vnode.h - 1.20
> - Prototype changes and removals due to reworked interface
>
|