Hi,
I tried to format a partition using mkfs.ext4 (e2fsprogs) but it failed with an 
error.

$ /usr/sbin/mkfs.ext4 /dev/sde1
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 16384 1k blocks and 4096 inodes
Filesystem UUID: fb09cfbf-9f2a-4874-82f7-26c7cb853093
Superblock backups stored on blocks:
        8193

Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: mkfs.ext4: Invalid 
argument while writing out and closing file system
$ 

This also seems to happen with mkfs.minix (linux-utils).

$ /sbin/mkfs.minix /dev/sde1
5472 inodes
16384 blocks
Firstdatazone=176 (176)
Zonesize=1024
Maxsize=268966912

mkfs.minix: write failed: Invalid argument
$ 

I think it's because fsync is not implemented (causes InvalidArgument) for 
block devices.
Why fsync is not implemented for block devices?

/* test code */
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char** argv) {
  int fd;

  if (argc != 2) {
    puts("./program [file]");
    return -1;
  }

  fd = open(argv[1], O_RDWR);
  printf("open: %s\n", strerror(errno));
  if (errno) return -1;

  fsync(fd);
  printf("fsync: %s\n", strerror(errno));
  if (errno) return -1;
}

on Cygwin:
$ ./a.exe /dev/sde
open: No error
fsync: Invalid argument
$ ./a.exe /dev/sde1
open: No error
fsync: Invalid argument
$ uname -a
CYGWIN_NT-10.0-22621 DESKTOP-5H6F7L3 3.4.5-1.x86_64 2023-01-19 19:09 UTC x86_64 
Cygwin
$ 

expected behaviour (on Arch Linux):
$ sudo ./a.out /dev/sda
$ sudo ./a.out /dev/sda
open: Success
fsync: Success
$ sudo ./a.out /dev/sda1
open: Success
fsync: Success
$ uname -a
Linux arch 6.0.11-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 02 Dec 2022 17:25:31 
+0000 x86_64 GNU/Linux
$

Thanks,

---
Rei Yano <yano...@hotmail.co.jp>

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to