You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ar...@apache.org on 2022/09/20 08:21:13 UTC
[incubator-nuttx] 02/03: fs: Allocate unique serial number for the root pseduo file system node
This is an automated email from the ASF dual-hosted git repository.
archer pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit db518bf0dfbaeae3d10d3c7656e4be39e6176ef9
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Fri Sep 16 14:24:55 2022 +0800
fs: Allocate unique serial number for the root pseduo file system node
Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
fs/inode/fs_inodereserve.c | 7 +++++++
fs/vfs/fs_stat.c | 1 +
include/nuttx/fs/fs.h | 1 +
3 files changed, 9 insertions(+)
diff --git a/fs/inode/fs_inodereserve.c b/fs/inode/fs_inodereserve.c
index ffbf509fde..aca557913c 100644
--- a/fs/inode/fs_inodereserve.c
+++ b/fs/inode/fs_inodereserve.c
@@ -32,6 +32,12 @@
#include "inode/inode.h"
+/****************************************************************************
+ * Private Data
+ ****************************************************************************/
+
+static ino_t g_ino;
+
/****************************************************************************
* Private Functions
****************************************************************************/
@@ -78,6 +84,7 @@ static FAR struct inode *inode_alloc(FAR const char *name, mode_t mode)
node = (FAR struct inode *)kmm_zalloc(FSNODE_SIZE(namelen));
if (node)
{
+ node->i_ino = g_ino++;
#ifdef CONFIG_PSEUDOFS_ATTRIBUTES
node->i_mode = mode;
clock_gettime(CLOCK_REALTIME, &node->i_atime);
diff --git a/fs/vfs/fs_stat.c b/fs/vfs/fs_stat.c
index e4048f8933..06b9afff06 100644
--- a/fs/vfs/fs_stat.c
+++ b/fs/vfs/fs_stat.c
@@ -438,6 +438,7 @@ int inode_stat(FAR struct inode *inode, FAR struct stat *buf, int resolve)
buf->st_mtim = inode->i_mtime;
buf->st_ctim = inode->i_ctime;
#endif
+ buf->st_ino = inode->i_ino;
return OK;
}
diff --git a/include/nuttx/fs/fs.h b/include/nuttx/fs/fs.h
index 92ffdc432e..05cd0c7fe1 100644
--- a/include/nuttx/fs/fs.h
+++ b/include/nuttx/fs/fs.h
@@ -393,6 +393,7 @@ struct inode
int16_t i_crefs; /* References to inode */
uint16_t i_flags; /* Flags for inode */
union inode_ops_u u; /* Inode operations */
+ ino_t i_ino; /* Inode serial number */
#ifdef CONFIG_PSEUDOFS_ATTRIBUTES
mode_t i_mode; /* Access mode flags */
uid_t i_owner; /* Owner */