diff options
author | NeilBrown <neilb@suse.com> | 2018-11-30 10:04:08 +1100 |
---|---|---|
committer | Jeff Layton <jlayton@kernel.org> | 2018-11-30 11:26:12 -0500 |
commit | 4316c3c685f5bd949e75eb99df09a18e45cc8e5c (patch) | |
tree | 55cf6dfb3747d3976f4a214de60b4028853abbba /fs/ocfs2/locks.c | |
parent | 4d62d3f70b9b24497e489af79b0d730be792380f (diff) | |
download | linux-riscv-4316c3c685f5bd949e75eb99df09a18e45cc8e5c.tar.gz linux-riscv-4316c3c685f5bd949e75eb99df09a18e45cc8e5c.tar.bz2 linux-riscv-4316c3c685f5bd949e75eb99df09a18e45cc8e5c.zip |
ocfs2: properly initial file_lock used for unlock.
Rather than assuming all-zeros is sufficient, use the available API to
initialize the file_lock structure use for unlock. VFS-level changes
will soon make it important that the list_heads in file_lock are
always properly initialized.
Signed-off-by: NeilBrown <neilb@suse.com>
Reviewed-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Diffstat (limited to 'fs/ocfs2/locks.c')
-rw-r--r-- | fs/ocfs2/locks.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/ocfs2/locks.c b/fs/ocfs2/locks.c index d56f0079b858..b11acd34001a 100644 --- a/fs/ocfs2/locks.c +++ b/fs/ocfs2/locks.c @@ -52,6 +52,7 @@ static int ocfs2_do_flock(struct file *file, struct inode *inode, if (lockres->l_flags & OCFS2_LOCK_ATTACHED && lockres->l_level > LKM_NLMODE) { int old_level = 0; + struct file_lock request; if (lockres->l_level == LKM_EXMODE) old_level = 1; @@ -66,11 +67,10 @@ static int ocfs2_do_flock(struct file *file, struct inode *inode, * level. */ - locks_lock_file_wait(file, - &(struct file_lock) { - .fl_type = F_UNLCK, - .fl_flags = FL_FLOCK - }); + locks_init_lock(&request); + request.fl_type = F_UNLCK; + request.fl_flags = FL_FLOCK; + locks_lock_file_wait(file, &request); ocfs2_file_unlock(file); } |