diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2017-12-13 14:13:29 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-01-10 10:42:24 +0100 |
commit | e0e4c722c98737a4202b9fabc60bff6d2c6050f4 (patch) | |
tree | 35397d574ae30020bb3e64c449e04c13e9288e2a /fs/fs.c | |
parent | 896894088e7de081caddb5fc8dc653bc0f5ac7bb (diff) | |
download | barebox-e0e4c722c98737a4202b9fabc60bff6d2c6050f4.tar.gz barebox-e0e4c722c98737a4202b9fabc60bff6d2c6050f4.tar.xz |
fs: implement ftruncate
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs/fs.c')
-rw-r--r-- | fs/fs.c | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -742,6 +742,28 @@ int creat(const char *pathname, mode_t mode) } EXPORT_SYMBOL(creat); +int ftruncate(int fd, loff_t length) +{ + struct fs_driver_d *fsdrv; + FILE *f; + int ret; + + if (check_fd(fd)) + return -errno; + + f = &files[fd]; + + fsdrv = f->fsdev->driver; + + ret = fsdrv->truncate(&f->fsdev->dev, f, length); + if (ret) + return ret; + + f->size = length; + + return 0; +} + int ioctl(int fd, int request, void *buf) { struct fs_driver_d *fsdrv; |