mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
smbd: Fix breaking level2 on allocate
This needs doing even if we don't have strct allocate set. The client should not know that we lied. Fixes smb2.oplock.batch12. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
d3c689fc5c
commit
5e450f5ba9
@ -203,7 +203,6 @@
|
||||
^samba3.smb2.lease.oplock
|
||||
^samba3.smb2.lease.multibreak
|
||||
^samba3.smb2.lease.v2_request
|
||||
^samba3.smb2.oplock.batch12
|
||||
^samba3.smb2.oplock.batch20
|
||||
^samba3.smb2.oplock.stream1
|
||||
^samba3.smb2.streams.rename
|
||||
|
@ -561,16 +561,17 @@ int vfs_allocate_file_space(files_struct *fsp, uint64_t len)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!lp_strict_allocate(SNUM(fsp->conn)))
|
||||
return 0;
|
||||
|
||||
/* Grow - we need to test if we have enough space. */
|
||||
|
||||
contend_level2_oplocks_begin(fsp, LEVEL2_CONTEND_ALLOC_GROW);
|
||||
|
||||
/* See if we have a syscall that will allocate beyond end-of-file
|
||||
without changing EOF. */
|
||||
ret = SMB_VFS_FALLOCATE(fsp, VFS_FALLOCATE_KEEP_SIZE, 0, len);
|
||||
if (lp_strict_allocate(SNUM(fsp->conn))) {
|
||||
/* See if we have a syscall that will allocate beyond
|
||||
end-of-file without changing EOF. */
|
||||
ret = SMB_VFS_FALLOCATE(fsp, VFS_FALLOCATE_KEEP_SIZE, 0, len);
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
contend_level2_oplocks_end(fsp, LEVEL2_CONTEND_ALLOC_GROW);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user