X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=fs%2Freiserfs%2Finode.c;h=b33d67bba2fdfd548f30fd47ea81191b042e3e08;hb=e0e851cf30f1a9bd2e2a7624e9810378d6a2b072;hp=60e2f23447031b09a4a6fcbb34043016f4c55c46;hpb=fc5cd582e9c934ddaf6f310179488932cd154794;p=deliverable%2Flinux.git diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c index 60e2f2344703..b33d67bba2fd 100644 --- a/fs/reiserfs/inode.c +++ b/fs/reiserfs/inode.c @@ -2363,6 +2363,13 @@ static int reiserfs_write_full_page(struct page *page, int bh_per_page = PAGE_CACHE_SIZE / s->s_blocksize; th.t_trans_id = 0; + /* no logging allowed when nonblocking or from PF_MEMALLOC */ + if (checked && (current->flags & PF_MEMALLOC)) { + redirty_page_for_writepage(wbc, page); + unlock_page(page); + return 0; + } + /* The page dirty bit is cleared before writepage is called, which * means we have to tell create_empty_buffers to make dirty buffers * The page really should be up to date at this point, so tossing