Pushd and Propd issue in filesystem
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) 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. This is the script with which I am testing this driver. All pushd and propd are not working in this script. After trying many other alternatives, I think overriding commits would be a better choice. So then I would try overriding commits as the below link http://lxr.free-electrons.com/source/fs/open.c?v=3.8#L312 Regards, Saket Sinha Can somebody help
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
participants (2)
-
Jonathan Neuschäfer -
Saket Sinha