]> err.no Git - linux-2.6/blobdiff - fs/gfs2/ops_file.c
ext[234]: use ext[234]_get_group_desc()
[linux-2.6] / fs / gfs2 / ops_file.c
index 597f7ff2bc11c88ea6956916894154cb68ec1258..f4842f2548cdb8c55346836aab9f287370e4e9f1 100644 (file)
@@ -364,9 +364,11 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct page *page)
        ret = gfs2_write_alloc_required(ip, pos, PAGE_CACHE_SIZE, &alloc_required);
        if (ret || !alloc_required)
                goto out_unlock;
-
-       ip->i_alloc.al_requested = 0;
+       ret = -ENOMEM;
        al = gfs2_alloc_get(ip);
+       if (al == NULL)
+               goto out_unlock;
+
        ret = gfs2_quota_lock(ip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
        if (ret)
                goto out_alloc_put;
@@ -392,6 +394,7 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct page *page)
        last_index = ip->i_inode.i_size >> PAGE_CACHE_SHIFT;
        if (page->index > last_index)
                goto out_unlock_page;
+       ret = 0;
        if (!PageUptodate(page) || page->mapping != ip->i_inode.i_mapping)
                goto out_unlock_page;
        if (gfs2_is_stuffed(ip)) {