Browse Source

ext4: add ext4_cache_flush for explicit cache flush

pull/22/head
gkostka 8 years ago
parent
commit
c1185991fa
  1. 8
      include/ext4.h
  2. 19
      src/ext4.c

8
include/ext4.h

@ -234,6 +234,14 @@ int ext4_get_sblock(const char *mount_point, struct ext4_sblock **sb);
* @return standard error code */
int ext4_cache_write_back(const char *path, bool on);
/**@brief Force cache flush.
*
* @param path mount point path
*
* @return standard error code */
int ext4_cache_flush(const char *path);
/********************************FILE OPERATIONS*****************************/
/**@brief Remove file by path.

19
src/ext4.c

@ -1387,14 +1387,29 @@ int ext4_get_sblock(const char *mount_point, struct ext4_sblock **sb)
int ext4_cache_write_back(const char *path, bool on)
{
struct ext4_mountpoint *mp = ext4_get_mount(path);
int ret;
if (!mp)
return ENOENT;
EXT4_MP_LOCK(mp);
ext4_block_cache_write_back(mp->fs.bdev, on);
ret = ext4_block_cache_write_back(mp->fs.bdev, on);
EXT4_MP_UNLOCK(mp);
return EOK;
return ret;
}
int ext4_cache_flush(const char *path)
{
struct ext4_mountpoint *mp = ext4_get_mount(path);
int ret;
if (!mp)
return ENOENT;
EXT4_MP_LOCK(mp);
ret = ext4_block_cache_flush(mp->fs.bdev);
EXT4_MP_UNLOCK(mp);
return ret;
}
int ext4_fremove(const char *path)

Loading…
Cancel
Save