mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
tools/mm: prevent page_owner_sort from truncating input
page_owner_sort opens the output file with "w" before reading the input. If both paths refer to the same file, this truncates the input and the tool silently processes zero records before returning success. Delay opening the output file until all input records have been loaded into memory. This allows the tool to sort a file in place without truncating data before it has been consumed. Link: https://lore.kernel.org/20260730015809.3819606-1-warren.xiong@ugreen.com Signed-off-by: Warren Xiong <warren.xiong@ugreen.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Vishal Moola <vishal.moola@gmail.com> Cc: Ye Liu <ye.liu@linux.dev> Cc: Zhen Ni <zhen.ni@easystack.cn> Cc: Zi Yan <ziy@nvidia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
aa27e55f24
commit
825cef942c
|
|
@ -788,8 +788,7 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
fin = fopen(argv[optind], "r");
|
||||
fout = fopen(argv[optind + 1], "w");
|
||||
if (!fin || !fout) {
|
||||
if (!fin) {
|
||||
usage();
|
||||
perror("open: ");
|
||||
exit(1);
|
||||
|
|
@ -826,6 +825,13 @@ int main(int argc, char **argv)
|
|||
goto out_free;
|
||||
}
|
||||
|
||||
fout = fopen(argv[optind + 1], "w");
|
||||
if (!fout) {
|
||||
usage();
|
||||
perror("open: ");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
printf("loaded %d\n", list_size);
|
||||
|
||||
printf("sorting ....\n");
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user