Hi Shirish, On Mon, 26 Oct 2015 22:04:28 -0500 Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx> wrote: > They are stored in a linked list of struct cifs_rdelem off of > superblock where each element of this linked list points to a > disconnected dentry. This list is only used use when we mount with noserverino. It doesn't work in both case anyway. > > * 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. > > I think the simplistic answer is d_obtain_alias creates a dentry > without a parent and d_splice_dentry connects a disconnected dentry > to a parent. So let us say you have a a filesystem like /a/b/c/d/e/f > where c is not accessible, we would create a disconnected for d (and > for all the entries starting d such as e and f) > Then when c is accessible and we are trying to reach f, while > traversing, for each dentry we would look whether it is disconnected > or not and if found (by any of three search routines), splice dentry > with c. > > What kind of setup do you have where the patchset is not working? Everything is explained on the link I provided. It's the same setup you used I think. 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:
pgpS_6IWhEtsi.pgp
Description: OpenPGP digital signature