From owner-freebsd-hackers@FreeBSD.ORG Wed Apr 13 22:19:44 2011 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6E4E61065672 for ; Wed, 13 Apr 2011 22:19:44 +0000 (UTC) (envelope-from mdf356@gmail.com) Received: from mail-ww0-f50.google.com (mail-ww0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id F41898FC1C for ; Wed, 13 Apr 2011 22:19:43 +0000 (UTC) Received: by wwc33 with SMTP id 33so1213148wwc.31 for ; Wed, 13 Apr 2011 15:19:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=tx1vHSL2JVq21cOWdKex3IsDa841p8kkj0e8AM9B5Z4=; b=KEWL50LuZx8HJBvQ/KrG016Y+kEYnyUEpYeTkTyl+v/71rWFW1N0Q7CjEr2SUfNbj4 SGdOrsq7Dnrs9M1lCTc8dd/N54/+o6MfJPjNi9RfoJJRXr3ZlXfvxpOp2Bn6+SdktmND jG8PCcRjive4i7zA57iu4UF1QW/fg8h3JJEbQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=Uv0vgVPQ4nf2yuAmnS3Kb0Heg35SfYB3+dRy14Exu7Sqg9+aShHS20pGmrWhZlSGmI w3U+ifC3VVdbr99DW93UxNeNhADWM/B3Af1m5OcTIAeANTi9w/stxhEov14MfyQuKLAL 5EVmrLZo07t2BRyDSFNuzFKJGwKspzpoDlz5w= MIME-Version: 1.0 Received: by 10.216.87.8 with SMTP id x8mr13815wee.46.1302733182847; Wed, 13 Apr 2011 15:19:42 -0700 (PDT) Received: by 10.216.123.15 with HTTP; Wed, 13 Apr 2011 15:19:42 -0700 (PDT) In-Reply-To: <32AB5C9615CC494997D9ABB1DB12783C024E929FDC@SJ-EXCH-1.adaranet.com> References: <32AB5C9615CC494997D9ABB1DB12783C024E929F93@SJ-EXCH-1.adaranet.com> <32AB5C9615CC494997D9ABB1DB12783C024E929FD0@SJ-EXCH-1.adaranet.com> <32AB5C9615CC494997D9ABB1DB12783C024E929FDC@SJ-EXCH-1.adaranet.com> Date: Wed, 13 Apr 2011 15:19:42 -0700 Message-ID: From: Matthew Fleming To: Jonathan Stuart Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: "freebsd-hackers@freebsd.org" Subject: Re: Getting vnode + credentials of a file from a struct mount and UFS inode # X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Apr 2011 22:19:44 -0000 On Wed, Apr 13, 2011 at 2:37 PM, Jonathan Stuart 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 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 = 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 >> >