Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Apr 2011 15:19:42 -0700
From:      Matthew Fleming <mdf356@gmail.com>
To:        Jonathan Stuart <jstuart@adaranet.com>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: Getting vnode + credentials of a file from a struct mount and UFS inode #
Message-ID:  <BANLkTinuGGsxrOkAvDgg-pqihmdapxKaig@mail.gmail.com>
In-Reply-To: <32AB5C9615CC494997D9ABB1DB12783C024E929FDC@SJ-EXCH-1.adaranet.com>
References:  <32AB5C9615CC494997D9ABB1DB12783C024E929F93@SJ-EXCH-1.adaranet.com> <BANLkTi=hDuVxLSaC5Y4LTwV_Hqv8nT9JDw@mail.gmail.com> <32AB5C9615CC494997D9ABB1DB12783C024E929FD0@SJ-EXCH-1.adaranet.com> <BANLkTimZagyfkPBQOr4FjsL_oAHhx6F%2B1Q@mail.gmail.com> <32AB5C9615CC494997D9ABB1DB12783C024E929FDC@SJ-EXCH-1.adaranet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 13, 2011 at 2:37 PM, Jonathan Stuart <jstuart@adaranet.com> wro=
te:
> Yes, however getvnode() does initialize a struct file *.. but f_cred seem=
s 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@gmail.com]
> Sent: Wednesday, April 13, 2011 2:35 PM
> To: Jonathan Stuart
> Cc: freebsd-hackers@freebsd.org
> Subject: Re: Getting vnode + credentials of a file from a struct mount an=
d UFS inode #
>
> On Wed, Apr 13, 2011 at 2:18 PM, Jonathan Stuart <jstuart@adaranet.com> w=
rote:
>> Hi Matthew,
>>
>> Thanks, I'll give it a shot.. for some reason f_cred off the vnode is re=
turning all zeros for uid/gid, and
>> pulling the VTOI does the same thing (using getvnode()).. do these not g=
et 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@gmail.com]
>> Sent: Wednesday, April 13, 2011 1:48 PM
>> To: Jonathan Stuart
>> Cc: freebsd-hackers@freebsd.org
>> Subject: Re: Getting vnode + credentials of a file from a struct mount a=
nd UFS inode #
>>
>> On Wed, Apr 13, 2011 at 12:31 PM, Jonathan Stuart <jstuart@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 *). =A0I'm=
 sure there's got to be a function that would return a vnode and I could VT=
OI() 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
>>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTinuGGsxrOkAvDgg-pqihmdapxKaig>