Brian Behlendorf
1efdc45ea8
Fix O_APPEND open(2) flag
...
As described in flags section of open(2):
O_APPEND:
The file is opened in append mode. Before each write(2), the
file offset is positioned at the end of the file, as if with
lseek(2). O_APPEND may lead to corrupted files on NFS filesys-
tems if more than one process appends data to a file at once.
This is because NFS does not support appending to a file, so the
client kernel has to simulate it, which can't be done without a
race condition.
This issue was originally overlooked because normally the generic
VFS code handles this for a filesystem. However, because ZFS explictly
registers a zpl_write() function it's responsible for the seek.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov >
Closes #3124
2015-02-24 11:21:54 -08:00
..
2015-02-03 16:54:16 -08:00
2014-08-01 14:28:05 -07:00
2015-01-16 14:41:26 -08:00
2014-08-01 14:28:05 -07:00
2015-01-16 14:41:26 -08:00
2015-02-06 09:24:28 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2014-08-06 14:48:41 -07:00
2014-10-21 15:26:50 -07:00
2015-01-16 14:41:26 -08:00
2014-10-21 16:32:11 -07:00
2015-02-06 12:07:15 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2014-09-08 09:42:39 -07:00
2015-01-16 14:41:26 -08:00
2014-07-29 10:55:29 -07:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2013-12-18 16:46:35 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2014-03-07 10:01:36 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2013-12-18 16:46:35 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2014-11-17 11:13:55 -08:00
2015-02-13 16:02:04 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-02-06 09:26:46 -08:00
2010-08-31 13:41:59 -07:00
2010-08-31 13:41:58 -07:00
2015-02-17 16:09:41 -08:00
2014-08-06 14:48:41 -07:00
2015-01-21 15:30:24 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-02-10 11:00:08 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-06 16:53:24 -08:00
2015-01-16 14:41:26 -08:00
2013-10-31 14:58:04 -07:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2013-10-31 14:58:04 -07:00
2015-01-16 14:41:28 -08:00
2015-01-16 14:41:26 -08:00
2013-10-31 14:58:04 -07:00
2015-02-09 16:56:59 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2014-10-20 16:17:49 -07:00
2014-07-28 14:29:58 -07:00
2015-01-16 14:41:26 -08:00
2010-08-31 13:41:58 -07:00
2014-07-29 10:55:29 -07:00
2015-01-16 14:41:26 -08:00
2014-08-11 16:12:36 -07:00
2015-01-16 14:41:26 -08:00
2013-10-30 14:51:27 -07:00
2015-02-10 11:00:08 -08:00
2013-11-23 15:08:29 -08:00
2015-01-16 14:41:26 -08:00
2014-09-05 15:11:43 -07:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:28 -08:00
2015-01-20 14:07:59 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-02-02 11:20:41 -08:00
2014-08-01 14:28:05 -07:00
2014-08-01 14:28:05 -07:00
2014-08-06 14:48:41 -07:00
2015-02-10 16:09:49 -08:00
2010-05-28 13:45:14 -07:00
2015-02-10 16:34:30 -08:00
2013-12-18 16:46:35 -08:00
2015-02-24 11:21:54 -08:00
2013-12-18 16:46:35 -08:00
2015-01-20 14:07:59 -08:00
2015-01-16 14:41:26 -08:00
2015-01-06 16:53:24 -08:00
2015-01-30 14:44:14 -08:00