Changes since last update:
- fix setting up pcluster improperly for temporary pages; - derive atime instead of leaving it empty. -----BEGIN PGP SIGNATURE----- iIsEABYIADMWIQThPAmQN9sSA0DVxtI5NzHcH7XmBAUCX6lG0xUcaHNpYW5na2Fv QHJlZGhhdC5jb20ACgkQOTcx3B+15gRmjQEAspSscgSq13pb1s1z51dxrD7vljqP gmQ66XB+YAOy6McBAJbvmn37K6Ku0YbeOAdBicIgYe9ykW9PMZagDodOeP8M =Wnwh -----END PGP SIGNATURE----- Merge tag 'erofs-for-5.10-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs Pull erofs fixes from Gao Xiang: "A week ago, Vladimir reported an issue that the kernel log would become polluted if the page allocation debug option is enabled. I also found this when I cleaned up magical page->mapping and originally planned to submit these all for 5.11 but it seems the impact can be noticed so submit the fix in advance. In addition, nl6720 also reported that atime is empty although EROFS has the only one on-disk timestamp as a practical consideration for now but it's better to derive it as what we did for the other timestamps. Summary: - fix setting up pcluster improperly for temporary pages - derive atime instead of leaving it empty" * tag 'erofs-for-5.10-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs: erofs: fix setting up pcluster for temporary pages erofs: derive atime instead of leaving it empty
This commit is contained in:
Коммит
df3319a548
|
@ -107,11 +107,9 @@ static struct page *erofs_read_inode(struct inode *inode,
|
|||
i_gid_write(inode, le32_to_cpu(die->i_gid));
|
||||
set_nlink(inode, le32_to_cpu(die->i_nlink));
|
||||
|
||||
/* ns timestamp */
|
||||
inode->i_mtime.tv_sec = inode->i_ctime.tv_sec =
|
||||
le64_to_cpu(die->i_ctime);
|
||||
inode->i_mtime.tv_nsec = inode->i_ctime.tv_nsec =
|
||||
le32_to_cpu(die->i_ctime_nsec);
|
||||
/* extended inode has its own timestamp */
|
||||
inode->i_ctime.tv_sec = le64_to_cpu(die->i_ctime);
|
||||
inode->i_ctime.tv_nsec = le32_to_cpu(die->i_ctime_nsec);
|
||||
|
||||
inode->i_size = le64_to_cpu(die->i_size);
|
||||
|
||||
|
@ -149,11 +147,9 @@ static struct page *erofs_read_inode(struct inode *inode,
|
|||
i_gid_write(inode, le16_to_cpu(dic->i_gid));
|
||||
set_nlink(inode, le16_to_cpu(dic->i_nlink));
|
||||
|
||||
/* use build time to derive all file time */
|
||||
inode->i_mtime.tv_sec = inode->i_ctime.tv_sec =
|
||||
sbi->build_time;
|
||||
inode->i_mtime.tv_nsec = inode->i_ctime.tv_nsec =
|
||||
sbi->build_time_nsec;
|
||||
/* use build time for compact inodes */
|
||||
inode->i_ctime.tv_sec = sbi->build_time;
|
||||
inode->i_ctime.tv_nsec = sbi->build_time_nsec;
|
||||
|
||||
inode->i_size = le32_to_cpu(dic->i_size);
|
||||
if (erofs_inode_is_data_compressed(vi->datalayout))
|
||||
|
@ -167,6 +163,11 @@ static struct page *erofs_read_inode(struct inode *inode,
|
|||
goto err_out;
|
||||
}
|
||||
|
||||
inode->i_mtime.tv_sec = inode->i_ctime.tv_sec;
|
||||
inode->i_atime.tv_sec = inode->i_ctime.tv_sec;
|
||||
inode->i_mtime.tv_nsec = inode->i_ctime.tv_nsec;
|
||||
inode->i_atime.tv_nsec = inode->i_ctime.tv_nsec;
|
||||
|
||||
if (!nblks)
|
||||
/* measure inode.i_blocks as generic filesystems */
|
||||
inode->i_blocks = roundup(inode->i_size, EROFS_BLKSIZ) >> 9;
|
||||
|
|
|
@ -1078,8 +1078,11 @@ out_allocpage:
|
|||
cond_resched();
|
||||
goto repeat;
|
||||
}
|
||||
set_page_private(page, (unsigned long)pcl);
|
||||
SetPagePrivate(page);
|
||||
|
||||
if (tocache) {
|
||||
set_page_private(page, (unsigned long)pcl);
|
||||
SetPagePrivate(page);
|
||||
}
|
||||
out: /* the only exit (for tracing and debugging) */
|
||||
return page;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче