Re: cifs unable to access shares with read restricted at root level (bso#8950)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 26, 2015 at 7:18 AM, Aurélien Aptel <aaptel@xxxxxxxx> wrote:
> 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?

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.

> * 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?

>
> 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)
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux