The change made to use the journal_info field has problems on systems
which use a mix of
ext3 and xfs. If ext3 needs to allocate memory and ends up going into
xfs which does a
transaction, then ext3 gets trampled on by the xfs code. I am backing
this code out until
a safer version can be implemented. So there is a window where recent
cvs kernel will
cause problems if you mix the two filesystem types.
The 2.5 tree has the same code in it.
This was the offending code:
Modid: 2.4.x-xfs:slinx:110277a
linux/fs/xfs/xfs_trans.c - 1.125
- Maintain the current transaction in the current->journal_info pointer,
this will allow us to always tell if code is being called from within
a transaction or not.
linux/fs/xfs_support/kmem.c - 1.18
- If there is no xfs transaction pointer in the journal_info field for
the current task then it is safe to allocate memory using GFP_KERNEL
rather than GFP_NOFS.
Which went in this morning.
Steve
|