diff options
author | Teresa Remmet <t.remmet@phytec.de> | 2016-11-25 09:06:03 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2017-01-11 08:06:48 +0100 |
commit | a6785bae3b30232c126b2432d2391f89963d100d (patch) | |
tree | e44e7046ad6766ddc00f66e71dca24614587e6c7 /fs | |
parent | 0ec6bd3e1be84da991091fab5bbe20f168471a39 (diff) | |
download | barebox-a6785bae3b30232c126b2432d2391f89963d100d.tar.gz barebox-a6785bae3b30232c126b2432d2391f89963d100d.tar.xz |
devfs: Add optional truncate callback for device files
Not all device files have trivial fix device sizes like static
ubi volumes. Here the device file size equals the image size it contains.
Signed-off-by: Teresa Remmet <t.remmet@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/devfs.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/devfs.c b/fs/devfs.c index 6fabcf8ffa..2a7b1b3466 100644 --- a/fs/devfs.c +++ b/fs/devfs.c @@ -168,6 +168,11 @@ static int devfs_ioctl(struct device_d *_dev, FILE *f, int request, void *buf) static int devfs_truncate(struct device_d *dev, FILE *f, ulong size) { + struct cdev *cdev = f->priv; + + if (cdev->ops->truncate) + return cdev->ops->truncate(cdev, size); + if (f->fsdev->dev.num_resources < 1) return -ENOSPC; if (size > resource_size(&f->fsdev->dev.resource[0])) |