From d3518f1d8a63cab323a9c5c94d5eb552302b4df6 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 5 Sep 2001 00:05:07 +0000 Subject: NFS v2 can return ENOLCK when greater than 31 bit offsets are used. Treat this the same as an EFBIG error. Jeremy (This used to be commit 8fad5177701c1738a7f5bdd7c0082ef23a00b876) --- source3/locking/posix.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source3/locking/posix.c b/source3/locking/posix.c index 6a621200ca..b2ffbeda8f 100644 --- a/source3/locking/posix.c +++ b/source3/locking/posix.c @@ -705,10 +705,10 @@ static BOOL posix_fcntl_lock(files_struct *fsp, int op, SMB_OFF_T offset, SMB_OF ret = conn->vfs_ops.lock(fsp,fsp->fd,op,offset,count,type); - if (!ret && (errno == EFBIG)) { + if (!ret && ((errno == EFBIG) || (errno == ENOLCK))) { if( DEBUGLVL( 0 )) { dbgtext("posix_fcntl_lock: WARNING: lock request at offset %.0f, length %.0f returned\n", (double)offset,(double)count); - dbgtext("a 'file too large' error. This can happen when using 64 bit lock offsets\n"); + dbgtext("an %s error. This can happen when using 64 bit lock offsets\n", strerror(errno)); dbgtext("on 32 bit NFS mounted file systems. Retrying with 32 bit truncated length.\n"); } /* 32 bit NFS file system, retry with smaller offset */ -- cgit