*/
        ret = ocfs2_grab_pages_for_write(mapping, wc, wc->w_cpos, pos, len,
                                         cluster_of_pages, mmap_page);
-       if (ret && ret != -EAGAIN) {
-               mlog_errno(ret);
-               goto out_quota;
-       }
+       if (ret) {
+               /*
+                * ocfs2_grab_pages_for_write() returns -EAGAIN if it could not lock
+                * the target page. In this case, we exit with no error and no target
+                * page. This will trigger the caller, page_mkwrite(), to re-try
+                * the operation.
+                */
+               if (type == OCFS2_WRITE_MMAP && ret == -EAGAIN) {
+                       BUG_ON(wc->w_target_page);
+                       ret = 0;
+                       goto out_quota;
+               }
 
-       /*
-        * ocfs2_grab_pages_for_write() returns -EAGAIN if it could not lock
-        * the target page. In this case, we exit with no error and no target
-        * page. This will trigger the caller, page_mkwrite(), to re-try
-        * the operation.
-        */
-       if (ret == -EAGAIN) {
-               BUG_ON(wc->w_target_page);
-               ret = 0;
+               mlog_errno(ret);
                goto out_quota;
        }