summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/inode.h
diff options
context:
space:
mode:
authorWengang Wang <wen.gang.wang@oracle.com>2014-04-03 23:46:46 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2014-04-04 01:20:53 +0200
commitc18ceab01240fd4c354b78d877571b729908e4a3 (patch)
treed9c0107c30019e3299fe1b712d2eebaf832e55ed /fs/ocfs2/inode.h
parentocfs2: fix null pointer dereference when access dlm_state before launching dl... (diff)
downloadlinux-c18ceab01240fd4c354b78d877571b729908e4a3.tar.xz
linux-c18ceab01240fd4c354b78d877571b729908e4a3.zip
ocfs2: change ip_unaligned_aio to of type mutex from atomit_t
There is a problem that waitqueue_active() may check stale data thus miss a wakeup of threads waiting on ip_unaligned_aio. The valid value of ip_unaligned_aio is only 0 and 1 so we can change it to be of type mutex thus the above prolem is avoid. Another benifit is that mutex which works as FIFO is fairer than wake_up_all(). Signed-off-by: Wengang Wang <wen.gang.wang@oracle.com> Cc: Mark Fasheh <mfasheh@suse.com> Cc: Joel Becker <jlbec@evilplan.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/ocfs2/inode.h')
-rw-r--r--fs/ocfs2/inode.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h
index 621fc73bf23d..9f1580b506a5 100644
--- a/fs/ocfs2/inode.h
+++ b/fs/ocfs2/inode.h
@@ -44,7 +44,7 @@ struct ocfs2_inode_info
struct rw_semaphore ip_xattr_sem;
/* Number of outstanding AIO's which are not page aligned */
- atomic_t ip_unaligned_aio;
+ struct mutex ip_unaligned_aio;
/* These fields are protected by ip_lock */
spinlock_t ip_lock;