1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-02-06 18:29:47 +00:00

Alike to ZFS disable cache flush after first ENOTSUP error.

MFC after:	1 week
This commit is contained in:
Alexander Motin 2017-09-28 15:58:41 +00:00
parent cc5cd33264
commit 75b2ed47b7
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=324086

View File

@ -630,7 +630,7 @@ slogbench(int fd, int isreg, off_t mediasize, u_int sectorsize)
{ {
off_t off; off_t off;
u_int size; u_int size;
int error, n, N; int error, n, N, nowritecache = 0;
printf("Synchronous random writes:\n"); printf("Synchronous random writes:\n");
for (size = sectorsize; size <= MAXTX; size *= 2) { for (size = sectorsize; size <= MAXTX; size *= 2) {
@ -641,12 +641,18 @@ slogbench(int fd, int isreg, off_t mediasize, u_int sectorsize)
for (n = 0; n < 250; n++) { for (n = 0; n < 250; n++) {
off = random() % (mediasize / size); off = random() % (mediasize / size);
parwrite(fd, size, off * size); parwrite(fd, size, off * size);
if (nowritecache)
continue;
if (isreg) if (isreg)
error = fsync(fd); error = fsync(fd);
else else
error = ioctl(fd, DIOCGFLUSH); error = ioctl(fd, DIOCGFLUSH);
if (error < 0) if (error < 0) {
err(EX_IOERR, "Flush error"); if (errno == ENOTSUP)
nowritecache = 1;
else
err(EX_IOERR, "Flush error");
}
} }
N += 250; N += 250;
} while (delta_t() < 1.0); } while (delta_t() < 1.0);