[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