mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: yegorslists@googlemail.com
Cc: barebox@lists.infradead.org
Subject: Re: [PATCH 2/2] fs: add super_operations infrastructure
Date: Mon, 1 Feb 2016 09:47:31 +0100	[thread overview]
Message-ID: <20160201084731.GM13058@pengutronix.de> (raw)
In-Reply-To: <1454076381-17375-2-git-send-email-yegorslists@googlemail.com>

On Fri, Jan 29, 2016 at 03:06:21PM +0100, yegorslists@googlemail.com wrote:
> From: Yegor Yefremov <yegorslists@googlemail.com>
> 
> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
> ---
>  fs/Makefile        |  1 +
>  fs/inode.c         | 34 ++++++++++++++++++++++++++++++++++
>  fs/ubifs/super.c   | 26 +++++++++++---------------
>  include/linux/fs.h |  6 ++++++
>  4 files changed, 52 insertions(+), 15 deletions(-)
>  create mode 100644 fs/inode.c
> 
> diff --git a/fs/Makefile b/fs/Makefile
> index 7896e38..320e6fa 100644
> --- a/fs/Makefile
> +++ b/fs/Makefile
> @@ -5,6 +5,7 @@ obj-y			+= devfs-core.o
>  obj-$(CONFIG_FS_DEVFS)	+= devfs.o
>  obj-$(CONFIG_FS_FAT)	+= fat/
>  obj-y	+= fs.o
> +obj-y	+= inode.o
>  obj-$(CONFIG_FS_UBIFS)	+= ubifs/
>  obj-$(CONFIG_FS_TFTP)	+= tftp.o
>  obj-$(CONFIG_FS_OMAP4_USBBOOT)	+= omap4_usbbootfs.o
> diff --git a/fs/inode.c b/fs/inode.c
> new file mode 100644
> index 0000000..f9b1b63
> --- /dev/null
> +++ b/fs/inode.c
> @@ -0,0 +1,34 @@
> +/*
> + * (C) 1997 Linus Torvalds
> + * (C) 1999 Andrea Arcangeli <andrea@suse.de> (dynamic inode allocation)
> + */
> +
> +#include <linux/mount.h>
> +
> +/**
> + * iget_locked - obtain an inode from a mounted file system
> + * @sb:		super block of file system
> + * @ino:	inode number to get
> + *
> + * Search for the inode specified by @ino in the inode cache and if present
> + * return it with an increased reference count. This is for file systems
> + * where the inode number is sufficient for unique identification of an inode.
> + *
> + * If the inode is not in cache, allocate a new inode and return it locked,
> + * hashed, and with the I_NEW flag set.  The file system gets to fill it in
> + * before unlocking it via unlock_new_inode().
> + */
> +struct inode *iget_locked(struct super_block *sb, unsigned long ino)
> +{
> +	struct inode *inode;
> +
> +	inode = sb->s_op->alloc_inode(sb);
> +	if (inode) {
> +		inode->i_ino = ino;
> +		inode->i_sb = sb;
> +		list_add(&inode->i_sb_list, &sb->s_inodes);
> +		inode->i_state = I_SYNC | I_NEW;
> +	}
> +
> +	return inode;
> +}

Let's stop here, the border has been crossed. We can introduce no-op
wrappers for functions which do not have any meaning in barebox
(spinlocks and the like), we can introduce convenience wrappers for
functions that have a different name in barebox (like kmalloc), but
please let's not introduce functions which do more complicated things
which depend on structures being ordered the way they are in the Linux
kernel. I'm really afraid this way we merge more and more code from
Linux that doesn't really make sense in the barebox context and that we
have to keep code in the filesystem drivers just to make the parallel
universe of the Linux wrappers happy. That's a can of worms I don't want
to open.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  reply	other threads:[~2016-02-01  8:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-29 14:06 [PATCH 1/2] dcache: add missing linux/list.h include yegorslists
2016-01-29 14:06 ` [PATCH 2/2] fs: add super_operations infrastructure yegorslists
2016-02-01  8:47   ` Sascha Hauer [this message]
2016-02-02  7:27     ` Yegor Yefremov
2016-02-01  8:18 ` [PATCH 1/2] dcache: add missing linux/list.h include Sascha Hauer

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=20160201084731.GM13058@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=yegorslists@googlemail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox