Getting vnode + credentials of a file from a struct mount and UFS inode #

Matthew Fleming mdf356 at gmail.com
Wed Apr 13 22:19:44 UTC 2011


On Wed, Apr 13, 2011 at 2:37 PM, Jonathan Stuart <jstuart at adaranet.com> wrote:
> Yes, however getvnode() does initialize a struct file *.. but f_cred seems to not contain valid/correct entries.
> In my last post I probably should have pointed out that I have the inode stored from another operation.

I haven't looked at this field before, but it looks that f_cred is set
on falloc() to the cred of the thread creating the struct file (the
thread that called open or socket or pipe or kqueue, etc.).  Are you
running this as root/wheel?

Cheers,
matthew

> -----Original Message-----
> From: Matthew Fleming [mailto:mdf356 at gmail.com]
> Sent: Wednesday, April 13, 2011 2:35 PM
> To: Jonathan Stuart
> Cc: freebsd-hackers at freebsd.org
> Subject: Re: Getting vnode + credentials of a file from a struct mount and UFS inode #
>
> On Wed, Apr 13, 2011 at 2:18 PM, Jonathan Stuart <jstuart at adaranet.com> wrote:
>> Hi Matthew,
>>
>> Thanks, I'll give it a shot.. for some reason f_cred off the vnode is returning all zeros for uid/gid, and
>> pulling the VTOI does the same thing (using getvnode()).. do these not get initialized properly?
>
> f_cred is a field in struct file, not struct vnode, so I'm confused as
> to what you're referring to.
>
> Cheers,
> matthew
>
>> -----Original Message-----
>> From: Matthew Fleming [mailto:mdf356 at gmail.com]
>> Sent: Wednesday, April 13, 2011 1:48 PM
>> To: Jonathan Stuart
>> Cc: freebsd-hackers at freebsd.org
>> Subject: Re: Getting vnode + credentials of a file from a struct mount and UFS inode #
>>
>> On Wed, Apr 13, 2011 at 12:31 PM, Jonathan Stuart <jstuart at adaranet.com> wrote:
>>> Hi,
>>>
>>> I'd like to pull the owner/group ownership from a file (the information I have about the file is it's UFS inode # and it's struct mount *).  I'm sure there's got to be a function that would return a vnode and I could VTOI() to get this information from the inode.. but I'm having a brainfreeze.
>>>
>>
>> VFS_VGET(mp, ino, flags, &vp) is probably what you want.
>>
>> Cheers,
>> matthew
>>
>


More information about the freebsd-hackers mailing list