diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-12-19 10:19:44 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-12-20 08:26:25 +0100 |
commit | ade135d45577263fe2c7b4d885e81c1798a1a79a (patch) | |
tree | 723884b48f9ad2acfd60f3e495438009ec22fb82 /cpukit | |
parent | JFFS2: Add RTEMS_JFFS2_GET_INFO (diff) | |
download | rtems-ade135d45577263fe2c7b4d885e81c1798a1a79a.tar.bz2 |
JFFS2: Add RTEMS_JFFS2_FORCE_GARBAGE_COLLECTION
Add IO control to force a garbage collection.
Update #2844.
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/libfs/src/jffs2/include/rtems/jffs2.h | 8 | ||||
-rw-r--r-- | cpukit/libfs/src/jffs2/src/fs-rtems.c | 3 |
2 files changed, 11 insertions, 0 deletions
diff --git a/cpukit/libfs/src/jffs2/include/rtems/jffs2.h b/cpukit/libfs/src/jffs2/include/rtems/jffs2.h index 39c9420e62..11735cbb09 100644 --- a/cpukit/libfs/src/jffs2/include/rtems/jffs2.h +++ b/cpukit/libfs/src/jffs2/include/rtems/jffs2.h @@ -555,6 +555,14 @@ typedef struct { */ #define RTEMS_JFFS2_GET_INFO _IOR('F', 1, rtems_jffs2_info) +/** + * @brief IO control to force a garbage collection in a JFFS2 filesystem + * instance. + * + * Use this operation with care since it may wear out your flash. + */ +#define RTEMS_JFFS2_FORCE_GARBAGE_COLLECTION _IO('F', 3) + /** @} */ #ifdef __cplusplus diff --git a/cpukit/libfs/src/jffs2/src/fs-rtems.c b/cpukit/libfs/src/jffs2/src/fs-rtems.c index c8045dbed7..5f57a16bcb 100644 --- a/cpukit/libfs/src/jffs2/src/fs-rtems.c +++ b/cpukit/libfs/src/jffs2/src/fs-rtems.c @@ -568,6 +568,9 @@ static int rtems_jffs2_ioctl( rtems_jffs2_get_info(&inode->i_sb->jffs2_sb, buffer); eno = 0; break; + case RTEMS_JFFS2_FORCE_GARBAGE_COLLECTION: + eno = -jffs2_garbage_collect_pass(&inode->i_sb->jffs2_sb); + break; default: eno = EINVAL; break; |