From: Rusty Russell <rusty@rustcorp.com.au>
To: Martin Kepplinger <martink@posteo.de>
Cc: lguest@lists.ozlabs.org,
"linux-kernel\@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: lguest: lguest_user.c is open() called by the user?
Date: Mon, 20 Oct 2014 11:02:08 +1030 [thread overview]
Message-ID: <87vbnf8ttj.fsf@rustcorp.com.au> (raw)
In-Reply-To: <54430160.6020503@posteo.de>
Martin Kepplinger <martink@posteo.de> writes:
> hi
>
> Just a question for understanding: open() is not implemented in
> lguest_user.c's miscdevice. The miscdevice core, in this case, does
> _not_ set file->private_data on a user's open() call. Is open() called
> by the user here? and do you here _depend_ on file->private_data being
> NULL after open()? (could you even?)
>
> Would the following force to NULL be necessary if the miscdevice core
> _would_ set private_data?
Hi Martin!
Yes, the private_data is NULL on a new file. See
get_empty_filp in fs/file_table.c, which does kmem_cache_zalloc
(zeroing all the contents).
So this isn't necessary here.
Thanks!
Rusty.
> diff --git a/drivers/lguest/lguest_user.c b/drivers/lguest/lguest_user.c
> index 4263f4c..3d472ea 100644
> --- a/drivers/lguest/lguest_user.c
> +++ b/drivers/lguest/lguest_user.c
> @@ -497,6 +497,12 @@ static int close(struct inode *inode, struct file
> *file)
> return 0;
> }
>
> +static int open(struct inode *inode, struct file *file)
> +{
> + /* assuming the miscdevice core sets private_data on open() */
> + file->private_data = NULL;
> +}
> +
> /*L:000
> * Welcome to our journey through the Launcher!
> *
> @@ -514,6 +520,7 @@ static int close(struct inode *inode, struct file *file)
> */
> static const struct file_operations lguest_fops = {
> .owner = THIS_MODULE,
> + .open = open,
> .release = close,
> .write = write,
> .read = read,
> --
>
> thanks
> martin
> --
> 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/
prev parent reply other threads:[~2014-10-20 0:35 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-19 0:10 lguest: lguest_user.c is open() called by the user? Martin Kepplinger
2014-10-20 0:32 ` Rusty Russell [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87vbnf8ttj.fsf@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--cc=lguest@lists.ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martink@posteo.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.