Browse Source

ext4: add ext4_inode_exist method

pull/28/head
gkostka 8 years ago
parent
commit
c8978f9dba
  1. 16
      include/ext4.h
  2. 16
      src/ext4.c

16
include/ext4.h

@ -395,6 +395,22 @@ uint64_t ext4_fsize(ext4_file *file);
int ext4_raw_inode_fill(const char *path, uint32_t *ret_ino, int ext4_raw_inode_fill(const char *path, uint32_t *ret_ino,
struct ext4_inode *inode); struct ext4_inode *inode);
/**@brief Check if inode exists.
*
* @param path Parh to file/dir/link.
* @param type Inode type.
* @ref EXT4_DIRENTRY_UNKNOWN
* @ref EXT4_DE_REG_FILE
* @ref EXT4_DE_DIR
* @ref EXT4_DE_CHRDEV
* @ref EXT4_DE_BLKDEV
* @ref EXT4_DE_FIFO
* @ref EXT4_DE_SOCK
* @ref EXT4_DE_SYMLINK
*
* @return Standard error code.*/
int ext4_inode_exist(const char *path, int type);
/**@brief Change file/directory/link mode bits. /**@brief Change file/directory/link mode bits.
* *
* @param path Path to file/dir/link. * @param path Path to file/dir/link.

16
src/ext4.c

@ -2110,6 +2110,22 @@ int ext4_raw_inode_fill(const char *path, uint32_t *ret_ino,
return r; return r;
} }
int ext4_inode_exist(const char *path, int type)
{
int r;
ext4_file f;
struct ext4_mountpoint *mp = ext4_get_mount(path);
if (!mp)
return ENOENT;
EXT4_MP_LOCK(mp);
r = ext4_generic_open2(&f, path, O_RDONLY, type, NULL, NULL);
EXT4_MP_UNLOCK(mp);
return r;
}
int ext4_mode_set(const char *path, uint32_t mode) int ext4_mode_set(const char *path, uint32_t mode)
{ {
int r; int r;

Loading…
Cancel
Save