Commit 5e6241e8 authored by Marc Dionne's avatar Marc Dionne Committed by Greg Kroah-Hartman

afs: Set correct lock type for the yfs CreateFile

[ Upstream commit 5edc22cc ]

A lock type of 0 is "LockRead", which makes the fileserver record an
unintentional read lock on the new file.  This will cause problems
later on if the file is the subject of locking operations.

The correct default value should be -1 ("LockNone").

Fix the operation marshalling code to set the value and provide an enum to
symbolise the values whilst we're at it.

Fixes: 30062bd1 ("afs: Implement YFS support in the fs client")
Signed-off-by: 's avatarMarc Dionne <marc.dionne@auristor.com>
Signed-off-by: 's avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: 's avatarSasha Levin <sashal@kernel.org>
parent a4dc1ce0
......@@ -161,3 +161,14 @@ struct yfs_xdr_YFSStoreVolumeStatus {
struct yfs_xdr_u64 max_quota;
struct yfs_xdr_u64 file_quota;
} __packed;
enum yfs_lock_type {
yfs_LockNone = -1,
yfs_LockRead = 0,
yfs_LockWrite = 1,
yfs_LockExtend = 2,
yfs_LockRelease = 3,
yfs_LockMandatoryRead = 0x100,
yfs_LockMandatoryWrite = 0x101,
yfs_LockMandatoryExtend = 0x102,
};
......@@ -803,7 +803,7 @@ int yfs_fs_create_file(struct afs_fs_cursor *fc,
bp = xdr_encode_YFSFid(bp, &vnode->fid);
bp = xdr_encode_string(bp, name, namesz);
bp = xdr_encode_YFSStoreStatus_mode(bp, mode);
bp = xdr_encode_u32(bp, 0); /* ViceLockType */
bp = xdr_encode_u32(bp, yfs_LockNone); /* ViceLockType */
yfs_check_req(call, bp);
afs_use_fs_server(call, fc->cbi);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment