All of lore.kernel.org
 help / color / mirror / Atom feed
* linux NFS client lock file cannot get a expected response
@ 2019-02-18  9:11 Gefei Li
  2019-02-18 20:21 ` J. Bruce Fields
  0 siblings, 1 reply; 4+ messages in thread
From: Gefei Li @ 2019-02-18  9:11 UTC (permalink / raw)
  To: linux-nfs

Hi NFSDevs,

I am recently testing linux nfs lock with NFS share from a WinServer
2016. I tried to write a file which has already been locked with fcntl
exclusively, but the response of `write` syscall is neither
`Permission denied`, nor successfully written with file content
changed. Here is several experiments I did:

The first shell runs c program, calling `fcntl` to lock file
exclusively “fcntl(fd, F_SETLKW, &fl)”

2.1 The second shell tried to open with flag O_RDWR, and write a
buffer to the same file, write returned the correct bytes written, but
the file content remained unchanged.
2.2 The second shell tried to open with flag O_RDWR|O_SYNC, write the
same buffer to the same file, write operation returned EAGAIN
2.3 The same operation on ext4 file system gives me a expected
behavior the same as advisory lock expressed, successfully written
with file content changed.

I reviewed NFS 4.1 protocol(RFC 5661 page 185), the nfs server can
determine whether byte range lock can be either mandatory or advisory,
but I think 2.1 and 2.2 gives me some unexpected behavior as these
two.. What’s your idea about this? Can you give me some tips to work
this out?

Looking forward for your reply. Thanks in advance!

BTW, my linux kernel version is 4.15.0, linux release: ubuntu 16.04
from Azure marketplace, my nfs-common version is
"nfs-common/xenial-updates,now 1:1.2.8-9ubuntu12.1 amd64" from ubuntu
apt repo.

Thanks,
Gefei

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-02-19 15:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-18  9:11 linux NFS client lock file cannot get a expected response Gefei Li
2019-02-18 20:21 ` J. Bruce Fields
2019-02-19  2:09   ` Gefei Li
2019-02-19 15:38     ` J. Bruce Fields

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.