Yes, sorry, I pasted the text into the report and somehow forgot to put sudo ./reproducer
I just wanted to clarify that the open with O_DIRECT and O_CREAT failure should not leave the file around if the open call gets an error return since this is not consistent with other file systems. Also it's not consistent with other open failure modes. Otherwise we need to fix every open call to remove any left over files if open fails and a file may be left over from the failed open. -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/2041670 Title: tmpfs: O_DIRECT | O_CREATE open reports open failure but actually creates a file. Status in Linux: Unknown Status in linux package in Ubuntu: New Bug description: creating a file on tmpfs with open(filename, O_RDWR | O_DIRECT | O_CREAT, 0666) reports an open failure error EINVAL, but still creates the file. The file should not be created if we hit such an error. Tested and fails on: mantic amd64: 6.5.0-10-generic lunar amd64: 6.2.0-35-generic jammie amd64: 5.15.0-generic focal: 5.4.0-165-generic bionic: 4.15.0-213-generic trusty: 4.4.0-148-generic sudo mkdir /mnt/tmpfs sudo mount -t tmpfs -o size=1G,nr_inodes=10k,mode=777 tmpfs /mnt/tmpfs sudo chmod 666 /mnt/tmpfs gcc reproducer.c -o reproducer sudo ./reproducer Run the attached program. It reports an open failure (errno 22, EINVAL) but still manages to create the file. Note this was original discovered by running stress-ng on tmpfs with the open stressor: stress-ng --open 1 To manage notifications about this bug go to: https://bugs.launchpad.net/linux/+bug/2041670/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp