All of lore.kernel.org
 help / color / mirror / Atom feed
* xfs: Temporary extra disk space consumption?
@ 2022-03-23 11:21 Tetsuo Handa
  2022-03-23 16:51 ` Darrick J. Wong
  2022-03-23 19:16 ` Dave Chinner
  0 siblings, 2 replies; 5+ messages in thread
From: Tetsuo Handa @ 2022-03-23 11:21 UTC (permalink / raw)
  To: linux-xfs

Hello.

I found that running a sample program shown below on xfs filesystem
results in consuming extra disk space until close() is called.
Is this expected result?

I don't care if temporarily consumed extra disk space is trivial. But since
this amount as of returning from fsync() is as much as amount of written data,
I worry that there might be some bug.

---------- my_write_unlink.c ----------
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
	static char buffer[1048576];
	const char *filename = "my_testfile";
	const int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0600);
	int i;

	if (fd == EOF)
		return 1;
	printf("Before write().\n");
	system("/bin/df -m .");
	for (i = 0; i < 1024; i++)
		if (write(fd, buffer, sizeof(buffer)) != sizeof(buffer))
			return 1;
	if (fsync(fd))
		return 1;
	printf("Before close().\n");
	system("/bin/df -m .");
	if (close(fd))
		return 1;
	printf("Before unlink().\n");
	system("/bin/df -m .");
	if (unlink(filename))
		return 1;
	printf("After unlink().\n");
	system("/bin/df -m .");
	return 0;
}
---------- my_write_unlink.c ----------

----------
$ uname -r
5.17.0
$ ./my_write_unlink
Before write().
Filesystem     1M-blocks   Used Available Use% Mounted on
/dev/sda1         255875 130392    125483  51% /
Before close().
Filesystem     1M-blocks   Used Available Use% Mounted on
/dev/sda1         255875 132443    123432  52% /
Before unlink().
Filesystem     1M-blocks   Used Available Use% Mounted on
/dev/sda1         255875 131416    124459  52% /
After unlink().
Filesystem     1M-blocks   Used Available Use% Mounted on
/dev/sda1         255875 130392    125483  51% /
$ grep sda /proc/mounts
/dev/sda1 / xfs rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0
----------

----------
$ uname -r
4.18.0-365.el8.x86_64
$ ./my_write_unlink
Before write().
Filesystem     1M-blocks  Used Available Use% Mounted on
/dev/sda1          20469  2743     17727  14% /
Before close().
Filesystem     1M-blocks  Used Available Use% Mounted on
/dev/sda1          20469  4791     15679  24% /
Before unlink().
Filesystem     1M-blocks  Used Available Use% Mounted on
/dev/sda1          20469  3767     16703  19% /
After unlink().
Filesystem     1M-blocks  Used Available Use% Mounted on
/dev/sda1          20469  2743     17727  14% /
$ grep sda /proc/mounts
/dev/sda1 / xfs rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0
----------

----------
$ uname -r
3.10.0-1160.59.1.el7.x86_64
$ ./my_write_unlink
Before write().
Filesystem     1M-blocks  Used Available Use% Mounted on
/dev/sda1          20469  2310     18160  12% /
Before close().
Filesystem     1M-blocks  Used Available Use% Mounted on
/dev/sda1          20469  4358     16112  22% /
Before unlink().
Filesystem     1M-blocks  Used Available Use% Mounted on
/dev/sda1          20469  3334     17136  17% /
After unlink().
Filesystem     1M-blocks  Used Available Use% Mounted on
/dev/sda1          20469  2310     18160  12% /
$ grep sda /proc/mounts
/dev/sda1 / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
----------

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-03-24  1:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-23 11:21 xfs: Temporary extra disk space consumption? Tetsuo Handa
2022-03-23 16:51 ` Darrick J. Wong
2022-03-23 19:16 ` Dave Chinner
2022-03-23 23:28   ` Tetsuo Handa
2022-03-24  1:13     ` Dave Chinner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.