zfsonlinux/zfs — pull request #1962 by tuxoko (2013-12-12 07:46:26+00:00)
Title: Fix z_sync_cnt decrement in zfs_close

The comment in zfs_close states that "Under Linux the zfs_close() hook is not
symmetric with zfs_open()". This is not true. zfs_open/zfs_close is associated
with every successful struct file creation/deletion, which should always be
balanced.

Here is an example of what's wrong:

Process A	B
open(O_SYNC)
z_sync_cnt = 1
open(O_SYNC)
z_sync_cnt = 2
close()
z_sync_cnt = 0

So z_sync_cnt is 0 even if B still has the file with O_SYNC.

Signed-off-by: Chunwei Chen