mirror of
https://github.com/samba-team/samba.git
synced 2025-01-26 10:04:02 +03:00
Fix bug #6019 File corruption in Clustered SMB/NFS environment managed via CTDB
Jeremy.
This commit is contained in:
parent
4f079fe539
commit
83c3b28096
@ -65,7 +65,7 @@ ssize_t sys_sendfile(int tofd, int fromfd, const DATA_BLOB *header, SMB_OFF_T of
|
||||
#endif
|
||||
} while (nwritten == -1 && errno == EINTR);
|
||||
if (nwritten == -1) {
|
||||
if (errno == ENOSYS) {
|
||||
if (errno == ENOSYS || errno == EINVAL) {
|
||||
/* Ok - we're in a world of pain here. We just sent
|
||||
* the header, but the sendfile failed. We have to
|
||||
* emulate the sendfile at an upper layer before we
|
||||
@ -143,7 +143,7 @@ ssize_t sys_sendfile(int tofd, int fromfd, const DATA_BLOB *header, SMB_OFF_T of
|
||||
nwritten = sendfile(tofd, fromfd, &small_offset, small_total);
|
||||
} while (nwritten == -1 && errno == EINTR);
|
||||
if (nwritten == -1) {
|
||||
if (errno == ENOSYS) {
|
||||
if (errno == ENOSYS || errno == EINVAL) {
|
||||
/* Ok - we're in a world of pain here. We just sent
|
||||
* the header, but the sendfile failed. We have to
|
||||
* emulate the sendfile at an upper layer before we
|
||||
|
@ -3179,9 +3179,9 @@ static void send_file_readX(connection_struct *conn, struct smb_request *req,
|
||||
setup_readX_header((char *)headerbuf, smb_maxcnt);
|
||||
|
||||
if ((nread = SMB_VFS_SENDFILE(smbd_server_fd(), fsp, &header, startpos, smb_maxcnt)) == -1) {
|
||||
/* Returning ENOSYS or EINVAL means no data at all was sent.
|
||||
/* Returning ENOSYS means no data at all was sent.
|
||||
Do this as a normal read. */
|
||||
if (errno == ENOSYS || errno == EINVAL) {
|
||||
if (errno == ENOSYS) {
|
||||
goto normal_read;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user