On Thu, 2017-05-11 at 15:30 +0100, David Howells wrote:
> Sargun Dhillon <sar...@sargun.me> wrote:
> 
> > Instead of string based configuration, does it perhaps make sense to
> > pass in structured mount data? Something like:
> 
> I don't think it helps particularly.
> 
> > enum mount_command_id {
> >     MOUNT_OPTION_STR,
> >     MOUNT_SET_USER_NS
> > };
> > 
> > struct mount_attr {
> >    __u64 command_id;
> >    union {
> >        char option_str[4095];
> >        char mount_source[PATH_MAX];
> 
> Why limit the option size to 4096?  I can see situations where it might be
> necessary to hand in a bigger blob - giving cifs a Microsoft Kerberos PAC for
> example.
> 
> >        struct {
> >            __u32 user_ns_fd
> 
> There are more than just that namespace that could be relevant.
> 
> >        }
> >    }
> > }
> > 
> > It seems a lot less error prone to me.
> 
> Not really.  The only real difference is how one selects what action is
> intended and how one determines the length.  write() has a length parameter.
> 

Agreed. I like the text based configuration better.

It also has another advantage: It's easy to strace the program and see
what it's doing. With an opaque blob, we'd need to teach strace how to
format the thing to be able to view it.

-- 
Jeff Layton <jlay...@redhat.com>

Reply via email to