mirror of
https://gitee.com/openharmony/third_party_f2fs-tools
synced 2024-11-26 19:51:32 +00:00
mkfs.f2fs: add -T flag
T flag sets timestamps to a given value Signed-off-by: Theotime Combes <tcombes@google.com> Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
f7029e2cf2
commit
5c723d1713
@ -404,6 +404,7 @@ struct f2fs_configuration {
|
||||
int large_nat_bitmap;
|
||||
int fix_chksum; /* fix old cp.chksum position */
|
||||
__le32 feature; /* defined features */
|
||||
time_t fixed_time;
|
||||
|
||||
/* mkfs parameters */
|
||||
u_int32_t next_free_nid;
|
||||
@ -426,7 +427,6 @@ struct f2fs_configuration {
|
||||
char *mount_point;
|
||||
char *target_out_dir;
|
||||
char *fs_config_file;
|
||||
time_t fixed_time;
|
||||
#ifdef HAVE_LIBSELINUX
|
||||
struct selinux_opt seopt_file[8];
|
||||
int nr_opt;
|
||||
|
@ -74,6 +74,10 @@ mkfs.f2fs \- create an F2FS file system
|
||||
.I nodiscard/discard
|
||||
]
|
||||
[
|
||||
.B \-T
|
||||
.I timestamp
|
||||
]
|
||||
[
|
||||
.B \-w
|
||||
.I wanted-sector-size
|
||||
]
|
||||
@ -228,6 +232,10 @@ Enable sparse mode.
|
||||
Specify 1 or 0 to enable or disable discard policy, respectively.
|
||||
The default value is 1.
|
||||
.TP
|
||||
.BI \-T " timestamp"
|
||||
Set inodes times to a given timestamp. By default, the current time will be used.
|
||||
This behaviour corresponds to the value -1.
|
||||
.TP
|
||||
.BI \-w " wanted-sector-size"
|
||||
Specify the sector size in bytes.
|
||||
Without it, the sectors will be calculated by device sector size.
|
||||
|
@ -35,6 +35,9 @@ struct f2fs_checkpoint *cp;
|
||||
#define last_zone(cur) ((cur - 1) * c.segs_per_zone)
|
||||
#define last_section(cur) (cur + (c.secs_per_zone - 1) * c.segs_per_sec)
|
||||
|
||||
/* Return time fixed by the user or current time by default */
|
||||
#define mkfs_time ((c.fixed_time == -1) ? time(NULL) : c.fixed_time)
|
||||
|
||||
static unsigned int quotatype_bits = 0;
|
||||
|
||||
const char *media_ext_lists[] = {
|
||||
@ -1143,11 +1146,11 @@ static int f2fs_write_root_inode(void)
|
||||
raw_node->i.i_size = cpu_to_le64(1 * blk_size_bytes); /* dentry */
|
||||
raw_node->i.i_blocks = cpu_to_le64(2);
|
||||
|
||||
raw_node->i.i_atime = cpu_to_le32(time(NULL));
|
||||
raw_node->i.i_atime = cpu_to_le32(mkfs_time);
|
||||
raw_node->i.i_atime_nsec = 0;
|
||||
raw_node->i.i_ctime = cpu_to_le32(time(NULL));
|
||||
raw_node->i.i_ctime = cpu_to_le32(mkfs_time);
|
||||
raw_node->i.i_ctime_nsec = 0;
|
||||
raw_node->i.i_mtime = cpu_to_le32(time(NULL));
|
||||
raw_node->i.i_mtime = cpu_to_le32(mkfs_time);
|
||||
raw_node->i.i_mtime_nsec = 0;
|
||||
raw_node->i.i_generation = 0;
|
||||
raw_node->i.i_xattr_nid = 0;
|
||||
@ -1164,7 +1167,7 @@ static int f2fs_write_root_inode(void)
|
||||
raw_node->i.i_projid = cpu_to_le32(F2FS_DEF_PROJID);
|
||||
|
||||
if (c.feature & cpu_to_le32(F2FS_FEATURE_INODE_CRTIME)) {
|
||||
raw_node->i.i_crtime = cpu_to_le32(time(NULL));
|
||||
raw_node->i.i_crtime = cpu_to_le32(mkfs_time);
|
||||
raw_node->i.i_crtime_nsec = 0;
|
||||
}
|
||||
|
||||
@ -1301,11 +1304,11 @@ static int f2fs_write_qf_inode(int qtype)
|
||||
raw_node->i.i_size = cpu_to_le64(1024 * 6); /* Hard coded */
|
||||
raw_node->i.i_blocks = cpu_to_le64(1 + QUOTA_DATA(qtype));
|
||||
|
||||
raw_node->i.i_atime = cpu_to_le32(time(NULL));
|
||||
raw_node->i.i_atime = cpu_to_le32(mkfs_time);
|
||||
raw_node->i.i_atime_nsec = 0;
|
||||
raw_node->i.i_ctime = cpu_to_le32(time(NULL));
|
||||
raw_node->i.i_ctime = cpu_to_le32(mkfs_time);
|
||||
raw_node->i.i_ctime_nsec = 0;
|
||||
raw_node->i.i_mtime = cpu_to_le32(time(NULL));
|
||||
raw_node->i.i_mtime = cpu_to_le32(mkfs_time);
|
||||
raw_node->i.i_mtime_nsec = 0;
|
||||
raw_node->i.i_generation = 0;
|
||||
raw_node->i.i_xattr_nid = 0;
|
||||
@ -1496,11 +1499,11 @@ static int f2fs_write_lpf_inode(void)
|
||||
raw_node->i.i_size = cpu_to_le64(1 * blk_size_bytes);
|
||||
raw_node->i.i_blocks = cpu_to_le64(2);
|
||||
|
||||
raw_node->i.i_atime = cpu_to_le32(time(NULL));
|
||||
raw_node->i.i_atime = cpu_to_le32(mkfs_time);
|
||||
raw_node->i.i_atime_nsec = 0;
|
||||
raw_node->i.i_ctime = cpu_to_le32(time(NULL));
|
||||
raw_node->i.i_ctime = cpu_to_le32(mkfs_time);
|
||||
raw_node->i.i_ctime_nsec = 0;
|
||||
raw_node->i.i_mtime = cpu_to_le32(time(NULL));
|
||||
raw_node->i.i_mtime = cpu_to_le32(mkfs_time);
|
||||
raw_node->i.i_mtime_nsec = 0;
|
||||
raw_node->i.i_generation = 0;
|
||||
raw_node->i.i_xattr_nid = 0;
|
||||
@ -1520,7 +1523,7 @@ static int f2fs_write_lpf_inode(void)
|
||||
raw_node->i.i_projid = cpu_to_le32(F2FS_DEF_PROJID);
|
||||
|
||||
if (c.feature & cpu_to_le32(F2FS_FEATURE_INODE_CRTIME)) {
|
||||
raw_node->i.i_crtime = cpu_to_le32(time(NULL));
|
||||
raw_node->i.i_crtime = cpu_to_le32(mkfs_time);
|
||||
raw_node->i.i_crtime_nsec = 0;
|
||||
}
|
||||
|
||||
|
@ -62,6 +62,7 @@ static void mkfs_usage()
|
||||
MSG(0, " -s # of segments per section [default:1]\n");
|
||||
MSG(0, " -S sparse mode\n");
|
||||
MSG(0, " -t 0: nodiscard, 1: discard [default:1]\n");
|
||||
MSG(0, " -T timestamps\n");
|
||||
MSG(0, " -w wanted sector size\n");
|
||||
MSG(0, " -z # of sections per zone [default:1]\n");
|
||||
MSG(0, " -V print the version number and exit\n");
|
||||
@ -123,7 +124,7 @@ static void add_default_options(void)
|
||||
|
||||
static void f2fs_parse_options(int argc, char *argv[])
|
||||
{
|
||||
static const char *option_string = "qa:c:C:d:e:E:g:il:mo:O:R:s:S:z:t:U:Vfw:";
|
||||
static const char *option_string = "qa:c:C:d:e:E:g:il:mo:O:R:s:S:z:t:T:U:Vfw:";
|
||||
int32_t option=0;
|
||||
int val;
|
||||
char *token;
|
||||
@ -201,6 +202,9 @@ static void f2fs_parse_options(int argc, char *argv[])
|
||||
case 't':
|
||||
c.trim = atoi(optarg);
|
||||
break;
|
||||
case 'T':
|
||||
c.fixed_time = strtoul(optarg, NULL, 0);
|
||||
break;
|
||||
case 'U':
|
||||
c.vol_uuid = strdup(optarg);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user