[PATCH] Statlite - without VFS changes

Shekhar Amlekar samlekar at in.ibm.com
Wed Dec 24 02:13:58 MST 2014


Hi Jeremy,

A comment below - will wait for more comments from
Volker.

Jeremy Allison <jra at samba.org> wrote on 12/23/2014 03:53:26 AM:

> From: Jeremy Allison <jra at samba.org>
> To: Shekhar Amlekar/India/IBM at IBMIN
> Cc: Jeremy Allison <jra at samba.org>, samba-technical <samba-
> technical at lists.samba.org>, vl at sernet.de
> Date: 12/23/2014 03:50 AM
> Subject: Re: [PATCH] Statlite - without VFS changes
> 
> On Mon, Dec 22, 2014 at 03:11:31PM +0530, Shekhar Amlekar wrote:
> > Hi Jeremy,
> > 
> > I just updated the patch with a small fix. Request you to take a look 
at 
> > this one.
> 
> OK, here are some thoughts.
> 
> I'm not keen on the STATLITE_SET_EXACT()
> and friends MACRO's. It's not easy when
> looking at them to understand what they're
> doing.
> 
> I'd prefer something like:
> 
> STATLITE_SET_ALL() to set all requested
> bits that can be returned.
> 
> The other thing that makes me a little
> nervous is the fact that using statlite()
> the stat structure can have partially
> valid values. So we can't just write
> code that checks st_ex_VAL anymore
> without first checking that (st_ex_slitemask & STATLITE_VAL_BIT)
> is set, but I suppose this is something
> we'll have to get used to if we're going
> to add statlite().
> 
> I suppose the fact you've made VALID_STAT
> check for STATLITE_EXACT_BITS being set
> before reporting a stat struct as valid
> will ameliorate this a bit.
> 
> I *really* don't like the idiom of
> using smb_fname->st.st_ex_slitemask
> as an in-out parameter to smb_vfs_call_statlite().
> 
> I think smb_vfs_call_statlite() should take
> a uint32_t mask value that explicitly
> shows the statlist bits you are requesting.
> 
> If we're going to do this you shouldn't
> use vfs_path_get_partial_stat() that always
> gets a subset of entries, you need to look
> carefully at the code calling statlite
> and explicitly make sure you're asking
> for the bits that the calling code needs.
> 

Retrieving one of the fields in partial
stat is as expensive as retrieving them all.
So, if the callers use
vfs_path_get_partial_stat(), it doesn't have
to set the mask explicitly.

For the callers, then, we'd have three stat
levels in the increasing order of cost for
the FS -

vfs_path_exists(),
vfs_path_get_partial_stat(), and,
SMB_VFS_(L)STAT()

This is just a thought, I can incorporate
your comment here.

regards,
shekhar.

> I'd appreciate Volker also looking over
> this (CC:ed on this reply) to get his
> initial thoughts.
> 
> Cheers,
> 
>    Jeremy.
> 


More information about the samba-technical mailing list