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>
This commit is contained in:
parent
0ec6bd3e1b
commit
a6785bae3b
|
@ -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]))
|
||||
|
|
|
@ -434,6 +434,7 @@ struct file_operations {
|
|||
int (*erase)(struct cdev*, loff_t count, loff_t offset);
|
||||
int (*protect)(struct cdev*, size_t count, loff_t offset, int prot);
|
||||
int (*memmap)(struct cdev*, void **map, int flags);
|
||||
int (*truncate)(struct cdev*, size_t size);
|
||||
};
|
||||
|
||||
#define MAX_PARTUUID_STR sizeof("00112233-4455-6677-8899-AABBCCDDEEFF")
|
||||
|
|
Loading…
Reference in New Issue