Commit 5edc22cc authored by Marc Dionne's avatar Marc Dionne Committed by David Howells

afs: Set correct lock type for the yfs CreateFile

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: default avatarMarc Dionne <>
Signed-off-by: default avatarDavid Howells <>
parent c2b8bd49
......@@ -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
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment