mirror of
https://github.com/apache/nuttx.git
synced 2026-08-01 20:28:58 +00:00
fs/dirent: add d_ino member to struct dirent
Add the POSIX d_ino (file serial number) member to struct dirent and
populate it on every readdir() path, so portable callers (e.g. scp in
dropbear) that read dp->d_ino observe a meaningful, non-zero inode
number:
- include/dirent.h: declare d_ino in struct dirent and drop the
outdated comment claiming the field is unimplemented.
- include/nuttx/fs/hostfs.h: add d_ino to struct nuttx_dirent_s so
the hostfs ABI can carry the inode number across the VFS boundary.
- arch/sim/src/sim/posix/sim_hostfs.c: forward the host's
ent->d_ino into entry->d_ino.
- fs/vfs/fs_dir.c (read_pseudodir): copy the in-memory inode's
i_ino into entry->d_ino for the pseudo filesystem.
- fs/yaffs/yaffs_vfs.c: forward yaffs's dirent->d_ino into
entry->d_ino.
- fs/rpmsgfs: extend struct rpmsgfs_readdir_s with an 'ino' field
and propagate it across the RPC in both rpmsgfs_server (fills it
from the underlying entry) and rpmsgfs_client (writes it back to
the caller's nuttx_dirent_s).
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
parent
50377d0909
commit
2ea2655bc6
7 changed files with 10 additions and 1 deletions
|
|
@ -107,11 +107,12 @@
|
|||
* of char containing at least {NAME_MAX} plus one elements.
|
||||
*
|
||||
* POSIX also requires the field d_ino (type ino_t) that provides the file
|
||||
* serial number. This functionality is not implemented in NuttX.
|
||||
* serial number.
|
||||
*/
|
||||
|
||||
struct dirent
|
||||
{
|
||||
ino_t d_ino; /* File serial number */
|
||||
uint8_t d_type; /* Type of file */
|
||||
char d_name[NAME_MAX + 1]; /* File name */
|
||||
};
|
||||
|
|
|
|||
|
|
@ -150,6 +150,7 @@ struct nuttx_timespec
|
|||
|
||||
struct nuttx_dirent_s
|
||||
{
|
||||
nuttx_ino_t d_ino;
|
||||
uint8_t d_type; /* type of file */
|
||||
char d_name[CONFIG_NAME_MAX + 1]; /* filename */
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue