[PATCH 4/5] fs: add cdev_create_from_file for loop mount option

Philipp Zabel p.zabel at pengutronix.de
Thu Jun 1 02:37:29 PDT 2017


On Thu, 2017-06-01 at 08:31 +0200, Sascha Hauer wrote:
> Hi Philipp,
> 
> On Tue, May 30, 2017 at 04:09:46PM +0200, Philipp Zabel wrote:
> > Allow to create a loopback cdev from a file.
> > 
> > Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
> > ---
> >  fs/devfs-core.c  | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >  fs/fs.c          | 21 ++++++++++++---
> >  include/driver.h |  1 +
> >  3 files changed, 99 insertions(+), 4 deletions(-)
> > 
> > diff --git a/fs/devfs-core.c b/fs/devfs-core.c
> > +static ssize_t loop_write(struct cdev *cdev, const void *buf, size_t count,
> > +		loff_t offset, ulong flags)
> > +{
> > +	struct loop_priv *priv = cdev->priv;
> > +	loff_t ofs;
> > +
> > +	ofs = lseek(priv->fd, offset, SEEK_SET);
> > +	if (ofs < 0)
> > +		return ofs;
> > +
> > +	return write(priv->fd, buf, count);
> > +}
> > +
> > +static const struct file_operations loop_ops = {
> > +	.read = loop_read,
> > +	.write = loop_write,
> > +	.memmap = generic_memmap_rw,
> > +	.lseek = dev_lseek_default,
> > +};
> > +
> > +struct cdev *cdev_create_from_file(const char *path, ulong flags)
> 
> Looks good, but I'm missing the counterpart of this function and its
> usage in umount().

Thanks, I'll add a .close callback to loop_ops to call close(priv->fd)
on umount.

regards
Philipp





More information about the barebox mailing list