[Linux-cluster] problem exporting GFS2 filesystem with NFS

Benoit DUFFAU benoit.duffau at devoteam.com
Wed Jan 24 11:35:29 UTC 2007


Le mercredi 24 janvier 2007 à 09:44 +0000, Steven Whitehouse a écrit :
> Hi,
> 
> This problem (NFS readdirplus bug) should be fixed in the upstream
> kernel as well as FC-6. Its due to NFS' readdirplus calling the vfs stat
> function (gfs2_getattr) for the '.' directory from readdir's filldir
> callback. As a result it tried to lock the directory twice which
> triggers the recursive locking check.
> 
> The URL of the fix is:
> http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=dcf3dd852f554bb0016aa23892596717cc123a26
> 
> Please let me know if that doesn't cure the problem,
> 

Hi, 

thank you for answering me so quickly !!!

I patched my 2.6.19.2 kernel but this does not work. 

The kernel does not crash any longer (great ! :) ) but the export is now
impossible ! 

when i try to mount the exported directory i have the following error on
the client : 

client1:~# mount server1:/test /mnt -o defaults,udp,async,soft -t nfs
mount: server1:/test: can't read superblock

i have one question :

when i compile the patched kernel it says : 

fs/gfs2/ops_inode.c: In function « gfs2_getattr »:
fs/gfs2/ops_inode.c:1047: Warning : empty body in an if-statement

are you sure with your code ?? :

+       if (unlock);
+               gfs2_glock_dq_uninit(&gh);

shouldn't it be : 

+       if (unlock)
+               gfs2_glock_dq_uninit(&gh);

instead ???

I completly don't understand what this piece of code is doing but i find
it strange to do a if (var); ... 

the problem is that even if i try to compile another kernel without
the ; after the if santance it crashes the same way before :(

here again the kernel dump

Jan 24 12:27:55 replica1 kernel: ------------[ cut here ]------------
Jan 24 12:27:55 replica1 kernel: kernel BUG at fs/gfs2/glock.c:1193!
Jan 24 12:27:55 replica1 kernel: invalid opcode: 0000 [#1]
Jan 24 12:27:55 replica1 kernel: SMP
Jan 24 12:27:55 replica1 kernel: CPU:    1
Jan 24 12:27:55 replica1 kernel: EIP:    0060:[add_to_queue+181/297]
Not tainted VLI
Jan 24 12:27:55 replica1 kernel: EFLAGS: 00010282   (2.6.19.2-grsec #5)
Jan 24 12:27:55 replica1 kernel: eax: 00000020   ebx: da62be68   ecx:
da62ba28   edx: c05f1c60
Jan 24 12:27:55 replica1 kernel: esi: ddc422fc   edi: da62ba88   ebp:
dafff000   esp: da62ba24
Jan 24 12:27:55 replica1 kernel: ds: 0068   es: 007b   ss: 0068
Jan 24 12:27:55 replica1 kernel: Process nfsd (pid: 3123, ti=da62a000
task=da81d560 task.ti=da62a000)
Jan 24 12:27:55 replica1 kernel: Stack: c05f1c60 00000002 00000001
ddc422fc da62ba88 00000000 dafff000 c02aa65c
Jan 24 12:27:55 replica1 kernel:        da62ba88 dab35514 da630194
da62ba88 da6301b0 c02accfc da62ba88 00000003
Jan 24 12:27:55 replica1 kernel:        00000000 da62ba88 00000000
dd028600 dab35514 c02b9698 dab35514 00000001
Jan 24 12:27:55 replica1 kernel: Call Trace:

Benoit

+---------------------------------------------------------------------+
Combining consulting and technology solutions offers enables Devoteam
to provide its customers with independent advice and effective solutions
that meet their strategic objectives (IT performance and optimisation)
in complementary areas: networks, systems infrastructure, security
and e-business applications.
Created in 1995, Devoteam achieved in 2005 a turnover of 199 million euros
and an operating margin of 7%. The group counts 2,400 employees through
sixteen countries in Europe, the Middle East and North Africa.
Listed on Euronext (Eurolist B compartment) since October 28, 1999.
Part of the Nexteconomy, CAC SMALL 90, IT CAC 50, SBF 250 index of 
Euronext Paris
ISIN: FR 000007379 3, Reuters: DVTM.LM, Bloomberg: DEVO FP
+---------------------------------------------------------------------+





More information about the Linux-cluster mailing list