diff --git a/fs/locks.c b/fs/locks.c
index 1114b3b8aa1e607bcf27d0085dd69e9fceb10eb5..0a99196764a8eded5abaa56d75db2f6e44618cbb 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -1316,6 +1316,7 @@ static int posix_lock_inode(struct inode *inode, struct file_lock *request,
  out:
 	spin_unlock(&ctx->flc_lock);
 	percpu_up_read(&file_rwsem);
+	trace_posix_lock_inode(inode, request, error);
 	/*
 	 * Free any unused locks.
 	 */
@@ -1324,7 +1325,6 @@ static int posix_lock_inode(struct inode *inode, struct file_lock *request,
 	if (new_fl2)
 		locks_free_lock(new_fl2);
 	locks_dispose_list(&dispose);
-	trace_posix_lock_inode(inode, request, error);
 
 	return error;
 }