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

Reply via email to