Hole punch races in CIFS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I was looking into what protects CIFS from races between hole punching and
operations like page fault or readahead and AFAICT there's nothing to
prevent a race like:

CPU1						CPU2
smb3_fallocate()
  smb3_punch_hole()
    truncate_pagecache_range()
						filemap_fault()
						  - loads old data into the
						    page cache
    SMB2_ioctl(..., FSCTL_SET_ZERO_DATA, ...)

And now we have stale data in the page cache and if the page gets later
dirtied and written out, even persistent data corruption. Is there anything
I'm missing?

								Honza
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux