Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964906AbWLMM3g (ORCPT ); Wed, 13 Dec 2006 07:29:36 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S964911AbWLMM3g (ORCPT ); Wed, 13 Dec 2006 07:29:36 -0500 Received: from plusavs02.SBG.AC.AT ([141.201.10.77]:60545 "HELO plusavs02.sbg.ac.at" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S964906AbWLMM3f (ORCPT ); Wed, 13 Dec 2006 07:29:35 -0500 Subject: Re: get device from file struct From: Silviu Craciunas Reply-To: silviu.craciunas@sbg.ac.at To: Jan Engelhardt Cc: linux-kernel@vger.kernel.org In-Reply-To: References: <1165850548.30185.18.camel@ThinkPadCK6> <457DA4A0.4060108@ens-lyon.org> <1165914248.30185.41.camel@ThinkPadCK6> <1166006239.30185.66.camel@ThinkPadCK6> Content-Type: text/plain Date: Wed, 13 Dec 2006 13:28:59 +0100 Message-Id: <1166012939.30185.77.camel@ThinkPadCK6> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 13 Dec 2006 12:29:26.0122 (UTC) FILETIME=[53BC74A0:01C71EB2] Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1559 Lines: 43 On Wed, 2006-12-13 at 12:03 +0100, Jan Engelhardt wrote: > >> >thanks for the reply, the block device can be determined with the major > >> >and minor numbers , what I would be more interested in is if one can get > >> >the net_device struct from the file struct > >> > >> Just how are you supposed to match files and network devices? > >> > > > >from the struct file you can get the struct socket and from there to the > >struct sock . > > That only applies when using PF_LOCAL sockets. > > >What I would like to find out is where the data is coming > >from (read) and where it is going to(write) or if it is even possible to > >find the net device out using the struct file. > > I really don't get what you want. > > Suppose a daemon reads from a socket (PF_INET), then there is a file descriptor > to sockfs (look into /proc/$$/fd/). Well, then you may be able to get the > struct file for that socket, but it does not connect to a regular file > (S_IFREG) at all. > > > -`J' in fs/read_write.c, the vfs_read function does: file->f_op->read(file, buf, count, pos); after this call is it possible to determine where the data is coming from? e.g., the first hard disk, a pipe or from a socket. If it is a socket we are interested from which device (eth0, eth1, lo, ...) the data was received. silviu - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/