mirror of https://github.com/torvalds/linux.git
dlm_posix_get fills out the relevant fields in the file_lock before returning when there is a lock conflict, but doesn't clean out any of the other fields in the file_lock. When nfsd does a NFSv4 lockt call, it sets the fl_lmops to nfsd_posix_mng_ops before calling the lower fs. When the lock comes back after testing a lock on GFS2, it still has that field set. This confuses nfsd into thinking that the file_lock is a nfsd4 lock. Fix this by making DLM reinitialize the file_lock before copying the fields from the conflicting lock. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: David Teigland <teigland@redhat.com> |
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| ast.c | ||
| ast.h | ||
| config.c | ||
| config.h | ||
| debug_fs.c | ||
| dir.c | ||
| dir.h | ||
| dlm_internal.h | ||
| lock.c | ||
| lock.h | ||
| lockspace.c | ||
| lockspace.h | ||
| lowcomms.c | ||
| lowcomms.h | ||
| lvb_table.h | ||
| main.c | ||
| member.c | ||
| member.h | ||
| memory.c | ||
| memory.h | ||
| midcomms.c | ||
| midcomms.h | ||
| netlink.c | ||
| plock.c | ||
| rcom.c | ||
| rcom.h | ||
| recover.c | ||
| recover.h | ||
| recoverd.c | ||
| recoverd.h | ||
| requestqueue.c | ||
| requestqueue.h | ||
| user.c | ||
| user.h | ||
| util.c | ||
| util.h | ||