mirror of
https://github.com/apache/nuttx.git
synced 2025-01-13 08:38:38 +08:00
lfs:Added LITTLEFS_USE_ATTR to control whether to save attributes when
create file Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
This commit is contained in:
parent
27e587b179
commit
27eaa23219
2 changed files with 26 additions and 2 deletions
|
@ -119,4 +119,12 @@ config FS_LITTLEFS_ATTR_MAX
|
||||||
|
|
||||||
Note: Many of tools to generate LITTLEFS images use 1022
|
Note: Many of tools to generate LITTLEFS images use 1022
|
||||||
for this by default.
|
for this by default.
|
||||||
|
|
||||||
|
config FS_LITTLEFS_ATTR_UPDATE
|
||||||
|
bool "LITTLEFS update attributes"
|
||||||
|
depends on FS_LITTLEFS_ATTR_MAX > 0
|
||||||
|
default y
|
||||||
|
---help---
|
||||||
|
Enable support for attributes when create a file.
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -114,8 +114,6 @@ static int littlefs_dup(FAR const struct file *oldp,
|
||||||
FAR struct file *newp);
|
FAR struct file *newp);
|
||||||
static int littlefs_fstat(FAR const struct file *filep,
|
static int littlefs_fstat(FAR const struct file *filep,
|
||||||
FAR struct stat *buf);
|
FAR struct stat *buf);
|
||||||
static int littlefs_fchstat(FAR const struct file *filep,
|
|
||||||
FAR const struct stat *buf, int flags);
|
|
||||||
static int littlefs_truncate(FAR struct file *filep,
|
static int littlefs_truncate(FAR struct file *filep,
|
||||||
off_t length);
|
off_t length);
|
||||||
|
|
||||||
|
@ -148,9 +146,13 @@ static int littlefs_rename(FAR struct inode *mountpt,
|
||||||
FAR const char *newrelpath);
|
FAR const char *newrelpath);
|
||||||
static int littlefs_stat(FAR struct inode *mountpt,
|
static int littlefs_stat(FAR struct inode *mountpt,
|
||||||
FAR const char *relpath, FAR struct stat *buf);
|
FAR const char *relpath, FAR struct stat *buf);
|
||||||
|
#ifdef CONFIG_FS_LITTLEFS_ATTR_UPDATE
|
||||||
|
static int littlefs_fchstat(FAR const struct file *filep,
|
||||||
|
FAR const struct stat *buf, int flags);
|
||||||
static int littlefs_chstat(FAR struct inode *mountpt,
|
static int littlefs_chstat(FAR struct inode *mountpt,
|
||||||
FAR const char *relpath,
|
FAR const char *relpath,
|
||||||
FAR const struct stat *buf, int flags);
|
FAR const struct stat *buf, int flags);
|
||||||
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Data
|
* Public Data
|
||||||
|
@ -178,7 +180,11 @@ const struct mountpt_operations g_littlefs_operations =
|
||||||
littlefs_sync, /* sync */
|
littlefs_sync, /* sync */
|
||||||
littlefs_dup, /* dup */
|
littlefs_dup, /* dup */
|
||||||
littlefs_fstat, /* fstat */
|
littlefs_fstat, /* fstat */
|
||||||
|
#ifdef CONFIG_FS_LITTLEFS_ATTR_UPDATE
|
||||||
littlefs_fchstat, /* fchstat */
|
littlefs_fchstat, /* fchstat */
|
||||||
|
#else
|
||||||
|
NULL,
|
||||||
|
#endif
|
||||||
|
|
||||||
littlefs_opendir, /* opendir */
|
littlefs_opendir, /* opendir */
|
||||||
littlefs_closedir, /* closedir */
|
littlefs_closedir, /* closedir */
|
||||||
|
@ -194,7 +200,11 @@ const struct mountpt_operations g_littlefs_operations =
|
||||||
littlefs_rmdir, /* rmdir */
|
littlefs_rmdir, /* rmdir */
|
||||||
littlefs_rename, /* rename */
|
littlefs_rename, /* rename */
|
||||||
littlefs_stat, /* stat */
|
littlefs_stat, /* stat */
|
||||||
|
#ifdef CONFIG_FS_LITTLEFS_ATTR_UPDATE
|
||||||
littlefs_chstat /* chstat */
|
littlefs_chstat /* chstat */
|
||||||
|
#else
|
||||||
|
NULL,
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
@ -347,6 +357,7 @@ static int littlefs_open(FAR struct file *filep, FAR const char *relpath,
|
||||||
goto errout;
|
goto errout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_FS_LITTLEFS_ATTR_UPDATE
|
||||||
if (oflags & LFS_O_CREAT)
|
if (oflags & LFS_O_CREAT)
|
||||||
{
|
{
|
||||||
struct littlefs_attr_s attr;
|
struct littlefs_attr_s attr;
|
||||||
|
@ -366,6 +377,7 @@ static int littlefs_open(FAR struct file *filep, FAR const char *relpath,
|
||||||
goto errout_with_file;
|
goto errout_with_file;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* In append mode, we need to set the file pointer to the end of the
|
/* In append mode, we need to set the file pointer to the end of the
|
||||||
* file.
|
* file.
|
||||||
|
@ -788,6 +800,7 @@ errout:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_FS_LITTLEFS_ATTR_UPDATE
|
||||||
static int littlefs_fchstat(FAR const struct file *filep,
|
static int littlefs_fchstat(FAR const struct file *filep,
|
||||||
FAR const struct stat *buf, int flags)
|
FAR const struct stat *buf, int flags)
|
||||||
{
|
{
|
||||||
|
@ -865,6 +878,7 @@ errout:
|
||||||
nxmutex_unlock(&fs->lock);
|
nxmutex_unlock(&fs->lock);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: littlefs_truncate
|
* Name: littlefs_truncate
|
||||||
|
@ -1700,6 +1714,7 @@ errout:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_FS_LITTLEFS_ATTR_UPDATE
|
||||||
static int littlefs_chstat(FAR struct inode *mountpt,
|
static int littlefs_chstat(FAR struct inode *mountpt,
|
||||||
FAR const char *relpath,
|
FAR const char *relpath,
|
||||||
FAR const struct stat *buf, int flags)
|
FAR const struct stat *buf, int flags)
|
||||||
|
@ -1773,3 +1788,4 @@ errout:
|
||||||
nxmutex_unlock(&fs->lock);
|
nxmutex_unlock(&fs->lock);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue