xfs
[Top] [All Lists]

TAKE - fix panic caused by mix of local and remote access to xfs

Subject: TAKE - fix panic caused by mix of local and remote access to xfs
From: Steve Lord <lord@xxxxxxx>
Date: Fri, 25 May 2001 15:42:01 -0500
Sender: owner-linux-xfs@xxxxxxxxxxx
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 
case
          which we recognised with a panic. When xfs needs a new inode 
internally
          it goes through icreate, and if this returns a new inode, it calls 
xfs_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 
case
          which we recognised with a panic. When xfs needs a new inode 
internally
          it goes through icreate, and if this returns a new inode, it calls 
xfs_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



<Prev in Thread] Current Thread [Next in Thread>