All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Dickson <SteveD@redhat.com>
To: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: linux-nfs@vger.kernel.org, Weston Andros Adamson <dros@primarydata.com>
Subject: Re: [PATCH 1/2] NFS: Fix an uninitialised pointer Oops in the writeback error path
Date: Tue, 14 Oct 2014 17:22:37 -0400	[thread overview]
Message-ID: <543D941D.4010908@RedHat.com> (raw)
In-Reply-To: <1413212839-6665-1-git-send-email-trond.myklebust@primarydata.com>



On 10/13/2014 11:07 AM, Trond Myklebust wrote:
> SteveD reports the following Oops:
>  RIP: 0010:[<ffffffffa053461d>]  [<ffffffffa053461d>] __put_nfs_open_context+0x1d/0x100 [nfs]
>  RSP: 0018:ffff880fed687b90  EFLAGS: 00010286
>  RAX: 0000000000000024 RBX: 0000000000000000 RCX: 0000000000000006
>  RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
>  RBP: ffff880fed687bc0 R08: 0000000000000092 R09: 000000000000047a
>  R10: 0000000000000000 R11: ffff880fed6878d6 R12: ffff880fed687d20
>  R13: ffff880fed687d20 R14: 0000000000000070 R15: ffffea000aa33ec0
>  FS:  00007fce290f0740(0000) GS:ffff8807ffc60000(0000) knlGS:0000000000000000
>  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>  CR2: 0000000000000070 CR3: 00000007f2e79000 CR4: 00000000000007e0
>  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>  DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>  Stack:
>   0000000000000000 ffff880036c5e510 ffff880fed687d20 ffff880fed687d20
>   ffff880036c5e200 ffffea000aa33ec0 ffff880fed687bd0 ffffffffa0534710
>   ffff880fed687be8 ffffffffa053d5f0 ffff880036c5e200 ffff880fed687c08
>  Call Trace:
>   [<ffffffffa0534710>] put_nfs_open_context+0x10/0x20 [nfs]
>   [<ffffffffa053d5f0>] nfs_pgio_data_destroy+0x20/0x40 [nfs]
>   [<ffffffffa053d672>] nfs_pgio_error+0x22/0x40 [nfs]
>   [<ffffffffa053d8f4>] nfs_generic_pgio+0x74/0x2e0 [nfs]
>   [<ffffffffa06b18c3>] pnfs_generic_pg_writepages+0x63/0x210 [nfsv4]
>   [<ffffffffa053d579>] nfs_pageio_doio+0x19/0x50 [nfs]
>   [<ffffffffa053eb84>] nfs_pageio_complete+0x24/0x30 [nfs]
>   [<ffffffffa053cb25>] nfs_direct_write_schedule_iovec+0x115/0x1f0 [nfs]
>   [<ffffffffa053675f>] ? nfs_get_lock_context+0x4f/0x120 [nfs]
>   [<ffffffffa053d252>] nfs_file_direct_write+0x262/0x420 [nfs]
>   [<ffffffffa0532d91>] nfs_file_write+0x131/0x1d0 [nfs]
>   [<ffffffffa0532c60>] ? nfs_need_sync_write.isra.17+0x40/0x40 [nfs]
>   [<ffffffff812127b8>] do_io_submit+0x3b8/0x840
>   [<ffffffff81212c50>] SyS_io_submit+0x10/0x20
>   [<ffffffff81610f29>] system_call_fastpath+0x16/0x1b
> 
> This is due to the calls to nfs_pgio_error() in nfs_generic_pgio(), which
> happen before the nfs_pgio_header's open context is referenced in
> nfs_pgio_rpcsetup().
> 
> Reported-by: Steve Dickson <SteveD@redhat.com>
> Cc: stable@vger.kernel.org # 3.16.x
> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Tested-by: Steve Dickson <steved@redhat.com>

steved.
> ---
>  fs/nfs/pagelist.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c
> index 94e16ec88312..08085de879ed 100644
> --- a/fs/nfs/pagelist.c
> +++ b/fs/nfs/pagelist.c
> @@ -526,7 +526,8 @@ EXPORT_SYMBOL_GPL(nfs_pgio_header_free);
>   */
>  void nfs_pgio_data_destroy(struct nfs_pgio_header *hdr)
>  {
> -	put_nfs_open_context(hdr->args.context);
> +	if (hdr->args.context)
> +		put_nfs_open_context(hdr->args.context);
>  	if (hdr->page_array.pagevec != hdr->page_array.page_array)
>  		kfree(hdr->page_array.pagevec);
>  }
> 

      parent reply	other threads:[~2014-10-14 21:22 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-13 15:07 [PATCH 1/2] NFS: Fix an uninitialised pointer Oops in the writeback error path Trond Myklebust
2014-10-13 15:07 ` [PATCH 2/2] NFS: Fix a bogus warning in nfs_generic_pgio Trond Myklebust
2014-10-13 15:25   ` Weston Andros Adamson
2014-10-14 21:22   ` Steve Dickson
2014-10-14 21:22 ` Steve Dickson [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=543D941D.4010908@RedHat.com \
    --to=steved@redhat.com \
    --cc=dros@primarydata.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@primarydata.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.