diff options
author | Jan Luebbe <jlu@pengutronix.de> | 2012-06-25 14:03:27 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-06-30 12:47:04 +0200 |
commit | a4fde70067b6113fd9dc7a4295ebd3f55b756db6 (patch) | |
tree | 9c69cdaa782250a1fc9fbe02e02f20907b660c5d /fs | |
parent | 4ef0846589203b35d70295e7e6e6a58d71e20fa0 (diff) | |
download | barebox-a4fde70067b6113fd9dc7a4295ebd3f55b756db6.tar.gz barebox-a4fde70067b6113fd9dc7a4295ebd3f55b756db6.tar.xz |
fs/devfs.c: disallow write and erase if a partition is read-only
Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/devfs.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/devfs.c b/fs/devfs.c index ae48451b6c..074bb34e3d 100644 --- a/fs/devfs.c +++ b/fs/devfs.c @@ -49,6 +49,9 @@ static int devfs_write(struct device_d *_dev, FILE *f, const void *buf, size_t s { struct cdev *cdev = f->inode; + if (cdev->flags & DEVFS_PARTITION_READONLY) + return -EPERM; + return cdev_write(cdev, buf, size, f->pos, f->flags); } @@ -70,6 +73,9 @@ static int devfs_erase(struct device_d *_dev, FILE *f, size_t count, unsigned lo { struct cdev *cdev = f->inode; + if (cdev->flags & DEVFS_PARTITION_READONLY) + return -EPERM; + if (!cdev->ops->erase) return -ENOSYS; |