Pushd and Propd issue in filesystem

Jonathan Neuschäfer j.neuschaefer at gmx.net
Tue Aug 6 10:35:29 EDT 2013


On Tue, Aug 06, 2013 at 12:06:52PM +0530, Saket Sinha wrote:
> I have to support pushd and popd from userspace in a filesystem that I have
> designed.
> 
> In my filesystem driver, to implement it I have done the following
> 
> for popd - the driver implementation is
> https://github.com/disdi/hepunion/blob/master/fs/hepunion/hepunion.h#L386
> #define pop_root() \
> current->fsuid = context->uid; \
> current->fsgid = context->gid; \
> recursive_mutex_unlock(&context->id_lock)

What you're seeing there are *not* implementations of the pushd/popd
bash commands; these just use chdir, as you can find out by running bash
under strace.

> 
> for pushd - the driver implementation is
> https://github.com/disdi/hepunion/blob/master/fs/hepunion/hepunion.h#L393
> #define push_root() \
> recursive_mutex_lock(&context->id_lock); \
> context->uid = current->fsuid; \
> context->gid = current->fsgid; \
> current->fsuid = 0; \
> current->fsgid = 0
> 
> 
> But this implementation is failing at run time.

How is it failing?



Thanks,
Jonathan Neuschäfer



More information about the Kernelnewbies mailing list