<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 30, 2016 at 9:50 AM, Raghavendra Gowdappa <span dir="ltr"><<a href="mailto:rgowdapp@redhat.com" target="_blank">rgowdapp@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
----- Original Message -----<br>
> From: "Pranith Kumar Karampuri" <<a href="mailto:pkarampu@redhat.com">pkarampu@redhat.com</a>><br>
</span><span class="">> To: "Raghavendra Gowdappa" <<a href="mailto:rgowdapp@redhat.com">rgowdapp@redhat.com</a>><br>
> Cc: "Shyam Ranganathan" <<a href="mailto:srangana@redhat.com">srangana@redhat.com</a>>, "Nithya Balachandran" <<a href="mailto:nbalacha@redhat.com">nbalacha@redhat.com</a>>, "Gluster Devel"<br>
> <<a href="mailto:gluster-devel@gluster.org">gluster-devel@gluster.org</a>><br>
</span><div><div class="h5">> Sent: Friday, September 30, 2016 9:15:04 AM<br>
> Subject: Re: Dht readdir filtering out names<br>
><br>
> On Fri, Sep 30, 2016 at 9:13 AM, Raghavendra Gowdappa <<a href="mailto:rgowdapp@redhat.com">rgowdapp@redhat.com</a>><br>
> wrote:<br>
><br>
> > dht_readdirp_cbk has different behaviour for directories and files.<br>
> ><br>
> > 1. If file, pick the dentry (passed from subvols as part of readdirp<br>
> > response) if the it corresponds to data file.<br>
> > 2. If directory pick the dentry if readdirp response is from hashed-subvol.<br>
> ><br>
> > In all other cases, the dentry is skipped and not passed to higher<br>
> > layers/application. To elaborate, the dentries which are ignored are:<br>
> > 1. dentries corresponding to linkto files.<br>
> > 2. dentries from non-hashed subvols corresponding to directories.<br>
> ><br>
> > Since the behaviour is different for different filesystem objects, dht<br>
> > needs ia_type to choose its behaviour.<br>
> ><br>
> > ----- Original Message -----<br>
> > > From: "Pranith Kumar Karampuri" <<a href="mailto:pkarampu@redhat.com">pkarampu@redhat.com</a>><br>
> > > To: "Shyam Ranganathan" <<a href="mailto:srangana@redhat.com">srangana@redhat.com</a>>, "Raghavendra Gowdappa" <<br>
> > <a href="mailto:rgowdapp@redhat.com">rgowdapp@redhat.com</a>>, "Nithya Balachandran"<br>
> > > <<a href="mailto:nbalacha@redhat.com">nbalacha@redhat.com</a>><br>
> > > Cc: "Gluster Devel" <<a href="mailto:gluster-devel@gluster.org">gluster-devel@gluster.org</a>><br>
> > > Sent: Friday, September 30, 2016 8:39:28 AM<br>
> > > Subject: Dht readdir filtering out names<br>
> > ><br>
> > > hi,<br>
> > >Â Â Â Â In dht_readdirp_cbk() there is a check about skipping files<br>
> > without<br>
> > > ia_type. Could you help me understand why this check is added? There are<br>
> > > times when users have to delete gfid of the entries and trigger something<br>
> > > like 'find . | xargs stat' to heal the gfids. This case would fail if we<br>
> > > skip entries without gfid, if the lower xlators don't send stat<br>
> > information<br>
> > > for them.<br>
> ><br>
> > Probably we can make readdirp_cbk not rely on ia_type and pass _all_<br>
> > dentries received by subvols to application without filtering. However we<br>
> > should make this behaviour optional and use this only for recovery setups.<br>
> > If we don't rely on ia_type (during non error scenarios), applications end<br>
> > up seeing duplicate dentries in readdir listing.<br>
> ><br>
><br>
> That means dht_readdir() gives duplicate entries? As per the code it seems<br>
> like it...<br>
<br>
</div></div>No. It follows the filtering logic of "pick dentry only from hashed subvol". This logic doesn't need ia_type. Now, that you brought the topic of dht_readdir, I've another solution for your use case (Basically don't use readdirp :) ):<br>
<br>
1. mount glusterfs with "--use-readdirp=no" option.<br>
2. disable md-cache/stat-prefetch as it converts all readdir calls into readdirp calls<br></blockquote><div><br></div><div>Probably the ones in dht as well? i.e. use-readdirp option.<br></div><div>Â </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Use this only for recovery setups :).<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
><br>
> ><br>
> > ><br>
> > > --<br>
> > > Pranith<br>
> > ><br>
> ><br>
> > regards,<br>
> > Raghavendra<br>
> ><br>
><br>
><br>
><br>
> --<br>
> Pranith<br>
><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Pranith<br></div></div>
</div></div>