Hi! I've recently started working on bso#8950 [1] but I'm both a kernel/SMB protocol newbie so bear with me... :-) Shirish Pargaonkar provided a fix but it doesn't work on my setup. I would like to provide a fix for SUSE even if temporary/hacky. Shirish's approach seems sound so I've tried debugging it. I've summarized the situation and my comments here [2]. There are a few things I don't understand yet. * Where are disconnected dentries stored? * How do you allocate a new dentry? * What do d_obtain_alias() and d_splice_dentry() actually do? I've read the doc strings several times but I still have a hard time wrapping my head around it. The result I'm getting seems to indicate that when an intermediary path element is inaccessible an alternate root dentry directly pointing to the requested path is created. The problem is that the prefixpath of that is not stored anywhere so when we ask for a pattern to list the content of that share, we use the path of the dentry from the root (which is, well /) instead of the share prefixpath. 1: https://bugzilla.samba.org/show_bug.cgi?id=8950 2: http://diobla.info/doc/suse-todo#bnc799133 -- Aurélien Aptel / SUSE Labs Samba Team GPG: 1839 CB5F 9F5B FB9B AA97 8C99 03C8 A49B 521B D5D3 SUSE Linux GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
Attachment:
pgp_UxM9_nntN.pgp
Description: OpenPGP digital signature