Unlink after file close
authorJens Axboe <axboe@fb.com>
Thu, 20 Mar 2014 14:28:11 +0000 (08:28 -0600)
committerJens Axboe <axboe@fb.com>
Thu, 20 Mar 2014 14:28:11 +0000 (08:28 -0600)
commitb5f4d8baefc6eb3e13235b7d9042b7ffecdb23dd
treeee47723115f5e54adfb445e0b16f7989cf63acd5
parentb1bebc321e3b831d424dd49626833dd642224bd4
Unlink after file close

Sébastien reports:

I'm having an issue on windows : unlink=1 is not working (temp file are
still there) and it's working fine on unix

Looking at the code in close_and_free_files function :

[...]
if (td->o.unlink && f->filetype == FIO_TYPE_FILE) {
dprint(FD_FILE, "free unlink %s\n", f->file_name);
unlink(f->file_name);
}
[...]

Unlink() fails because the file is still open : On Solaris, truss shows
the following :

[...]
write(3, "\0\0\0\0\0 ;80\0\0\0\0\0".., 32768)   = 32768
unlink("/data/fio/random_rw.0.0")               = 0
close(3)                                        = 0
[...]

So unlink is called first.

I would put this unlinking phase AFTER the remove_file_hash call.

Signed-off-by: Jens Axboe <axboe@fb.com>
filesetup.c