summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSunil Mushran <sunil.mushran@oracle.com>2009-09-04 11:12:01 -0700
committerJoel Becker <joel.becker@oracle.com>2009-09-04 14:28:31 -0700
commit8379e7c46cc48f51197dd663fc6676f47f2a1e71 (patch)
treeee6ae04dd7014bfe311ea0f48a0aea734a96c2ed
parenta1b08e75dff3dc18a88444803753e667bb1d126e (diff)
downloadlinux-3.10-8379e7c46cc48f51197dd663fc6676f47f2a1e71.tar.gz
linux-3.10-8379e7c46cc48f51197dd663fc6676f47f2a1e71.tar.bz2
linux-3.10-8379e7c46cc48f51197dd663fc6676f47f2a1e71.zip
ocfs2: ocfs2_write_begin_nolock() should handle len=0
Bug introduced by mainline commit e7432675f8ca868a4af365759a8d4c3779a3d922 The bug causes ocfs2_write_begin_nolock() to oops when len=0. Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com> Cc: stable@kernel.org Signed-off-by: Joel Becker <joel.becker@oracle.com>
-rw-r--r--fs/ocfs2/aops.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index b401654011a..8a1e61545f4 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -1747,8 +1747,8 @@ int ocfs2_write_begin_nolock(struct address_space *mapping,
* we know zeros will only be needed in the first and/or last cluster.
*/
if (clusters_to_alloc || extents_to_split ||
- wc->w_desc[0].c_needs_zero ||
- wc->w_desc[wc->w_clen - 1].c_needs_zero)
+ (wc->w_clen && (wc->w_desc[0].c_needs_zero ||
+ wc->w_desc[wc->w_clen - 1].c_needs_zero)))
cluster_of_pages = 1;
else
cluster_of_pages = 0;