JFFS2: Add device identifier for the flash device

It is used in combination with the inode number to uniquely identify a
file system node in the system.
This commit is contained in:
Sebastian Huber
2014-06-10 10:56:55 +02:00
parent 2ba2743f06
commit 73bf499ce7
2 changed files with 15 additions and 3 deletions

View File

@@ -118,7 +118,8 @@ typedef struct rtems_jffs2_flash_control rtems_jffs2_flash_control;
* .flash_size = FLASH_SIZE,
* .read = flash_read,
* .write = flash_write,
* .erase = flash_erase
* .erase = flash_erase,
* .device_identifier = 0xc01dc0fe
* }
* };
*
@@ -265,6 +266,14 @@ struct rtems_jffs2_flash_control {
* This operation is optional and the pointer may be @c NULL.
*/
rtems_jffs2_flash_destroy destroy;
/**
* @brief The device identifier of the flash device.
*
* It is used in combination with the inode number to uniquely identify a
* file system node in the system.
*/
dev_t device_identifier;
};
typedef struct rtems_jffs2_compressor_control rtems_jffs2_compressor_control;

View File

@@ -405,9 +405,12 @@ static int rtems_jffs2_fstat(
)
{
struct _inode *inode = rtems_jffs2_get_inode_by_location(loc);
struct super_block *sb = inode->i_sb;
rtems_jffs2_flash_control *fc = sb->s_flash_control;
rtems_jffs2_do_lock(inode->i_sb);
rtems_jffs2_do_lock(sb);
buf->st_dev = fc->device_identifier;
buf->st_blksize = PAGE_SIZE;
buf->st_mode = inode->i_mode;
buf->st_ino = inode->i_ino;
@@ -419,7 +422,7 @@ static int rtems_jffs2_fstat(
buf->st_mtime = inode->i_mtime;
buf->st_ctime = inode->i_ctime;
rtems_jffs2_do_unlock(inode->i_sb);
rtems_jffs2_do_unlock(sb);
return 0;
}