• Marc Dionne's avatar
    afs: Don't set vnode->cb_s_break in afs_validate() · 4882a27c
    Marc Dionne authored
    A cb_interest record is not necessarily attached to the vnode on entry to
    afs_validate(), which can cause an oops when we try to bring the vnode's
    cb_s_break up to date in the default case (ie. no current callback promise
    and the vnode has not been deleted).
    Fix this by simply removing the line, as vnode->cb_s_break will be set when
    needed by afs_register_server_cb_interest() when we next get a callback
    promise from RPC call.
    The oops looks something like:
        BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
        RIP: 0010:afs_validate+0x66/0x250 [kafs]
        Call Trace:
         afs_d_revalidate+0x8d/0x340 [kafs]
         ? __d_lookup+0x61/0x150
         ? lookup_dcache+0x44/0x70
    Fixes: ae3b7361 ("afs: Fix validation/callback interaction")
    Signed-off-by: default avatarMarc Dionne <marc.dionne@auristor.com>
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
inode.c 14.9 KB