[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bug-218850-13602-w8IOxcHbEX@https.bugzilla.kernel.org/>
Date: Mon, 27 May 2024 07:28:38 +0000
From: bugzilla-daemon@...nel.org
To: linux-ext4@...r.kernel.org
Subject: [Bug 218850] Unexpected failure when write to a file with two file
descriptor
https://bugzilla.kernel.org/show_bug.cgi?id=218850
--- Comment #2 from Chi (zhangchi_seg@...il.nju.edu.cn) ---
Could you please help me review this report? I am still able to reproduce the
issue with the following test case:
```
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <stddef.h>
#include <unistd.h>
#include <pthread.h>
#include <errno.h>
#include <dirent.h>
#include <string>
#include <sys/mount.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <sys/wait.h>
#include <sys/xattr.h>
#include <sys/mount.h>
#include <sys/statfs.h>
#include <fcntl.h>
#define ALIGN 4096
void* align_alloc(size_t size) {
void *ptr = NULL;
int ret = posix_memalign(&ptr, ALIGN, size);
if (ret) {
printf("align error\n");
exit(1);
}
return ptr;
}
int main()
{
char *buf_15 = (char*)align_alloc(4096*20);
memset(buf_15, 'a', 4096*20);
char *buf_4 = (char*)align_alloc(4096*20);
memset(buf_4, 'a', 4096*20);
mount("/dev/loop0", "/root/mnt", "ext4", 0, "");
creat("/root/mnt/a", S_IRWXG);
link("/root/mnt/a", "/root/mnt/b");
int fd_a = open("/root/mnt/a", O_RDWR);
int fd_b = open("/root/mnt/b", O_RDWR | O_DIRECT);
lseek(fd_a, 100, SEEK_SET);
write(fd_a, buf_15, 9900);
read(fd_b, buf_4, 73728);
int state = write(fd_b, buf_15, 65536);
if (state == -1) {
printf("write failure\n");
}
return 0;
}
```
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are watching the assignee of the bug.
Powered by blists - more mailing lists