How about:

#define push_root() \
        recursive_mutex_lock(&context->id_lock);        \
        context->uid = current->fsuid;                  \
        context->gid = current->fsgid;                  \
        do {                                            \
            struct cred *new1 = prepare_creds();           \
            //make changes to any member of this structure \
            commit_creds(new1);                            \
        } while(0);

HTH,

-mandeep




On Mon, Jul 15, 2013 at 5:27 PM, Saket Sinha <[email protected]>wrote:

> Here is the macro
>
> https://github.com/HeisSpiter/hepunion/blob/master/fs/hepunion/hepunion.h#L393
>
> Now this driver is at 2.6.18 kernel. I have to upgrade it to 3.8.3.
> As I have said
> "current" in kernel is a global macro, that always point to the "struct
> task_struct * " of the currently executing task (for details on
> task_struct, ref Robert Love, pg 24-27).
>
>
> https://github.com/HeisSpiter/hepunion/blob/master/fs/hepunion/hepunion.h#L397
>
> Now if you look at thse two lines-
>
> current->fsuid = 0; \
> current->fsgid = 0
>
> Now task struct does not contain fsuid and fsgid, instead you have
> struct cred containing fsuid and fsgid.
> http://lxr.free-electrons.com/source/include/linux/cred.h#L102
>
> So normal method is
> struct cred *new1;
> new1 =prepare_creds();
> //make changes to any member of this structure
> commit_creds(new1);
>
> Now this above action I need to perform through a macro, in order to bring
> minimal changes to the driver.
>
> Now, I have told everything. Can someone suggest something that might work.
>
> Regards,
> Saket Sinha
>
>
>
>
>
> On Mon, Jul 15, 2013 at 5:07 PM, Mandeep Sandhu <
> [email protected]> wrote:
>
>>
>> On Mon, Jul 15, 2013 at 4:50 PM, Saket Sinha <[email protected]>wrote:
>>
>>> Mandip:
>>> Error is expected error or declaration at the end of input
>>>
>>
>> Without looking at the code, it's difficult to comment further.
>>
>> Can you attach a small compilable example which exhibits the error?
>>
>> -mandeep
>>
>>
>>
>>>  Anish:
>>> that '\' should not be there first of all and even if I put it same error
>>>
>>>
>>
>
_______________________________________________
Kernelnewbies mailing list
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to