"Hans-Peter Jansen":
> after moving from 2.6.34.5 to 2.6.34.7, I suffer from crashes like this:
>
> Sep 20 03:51:37 tyrex kernel: [18169.930270] ------------[ cut here ]------=
> ------
> Sep 20 03:51:37 tyrex kernel: [18169.939562] kernel BUG at /usr/src/package=
> s/BUILD/aufs2-standalone.tree-34-20100823/obj
> /pae/fs/aufs/dynop.c:198!

Hi Pete,

BUG at fs/aufs/dynop.c:198 means
- include/linux/fs.h defines struct address_space_operations.
- the struct is changed.
- and aufs should follow the change.

I looked at
> http://download.opensuse.org/repositories/home:/frispete:/kernel-2.6.34/ope=
> nSUSE_11.1/
and found SoN-23-mm-swapfile.patch in patches.suse.tar.bz2 adds some
members into struct address_space_operations.

fs/aufs/dynop.c:198 detects this change by its size, and gave you the
error.
In short, to address this probelm you need to add some simple lines such
as
        DySetAop(swapon);
        DySetAop(swapoff);
        DySetAop(swap_out);
        DySetAop(swap_in);
just before the line 198, DyDbgSize(cnt, *h_aop).

Ideally, you should read and understand these new members, and consider
about "Does aufs should support them?"
The above simple "DySetAop()" macros mean "aufs doesn't support them".

If the mainline kernel takes SoN-23-mm-swapfile.patch, I will look
closer and consider that.
Currently, it is unnecessary for aufs to support (override) the most
members in struct address_space_operations. So I guess these new members
will be same. ie. the simple "DySetAop()" macros will be enough. But it
is just my guess. Essentially careful consideration is necessary.


J. R. Okajima

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev

Reply via email to