Had a bit of time to look into this, hope this helps:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000220
IP: [<ffffffff8112efd0>] touch_atime+0x20/0x150

ffffffff8102efb0 <touch_atime>:
ffffffff8112efb0:       55                      push   %rbp
ffffffff8112efb1:       48 89 e5                mov    %rsp,%rbp
ffffffff8112efb4:       48 83 ec 30             sub    $0x30,%rsp
ffffffff8112efb8:       48 89 5d f0             mov    %rbx,-0x10(%rbp)
ffffffff8112efbc:       4c 89 65 f8             mov    %r12,-0x8(%rbp)
ffffffff8112efc0:       48 89 fb                mov    %rdi,%rbx
ffffffff8112efc3:       4c 8b 66 10             mov    0x10(%rsi),%r12
ffffffff8112efc7:       e8 94 36 00 00          callq  0xffffffff81132660
ffffffff8112efcc:       85 c0                   test   %eax,%eax
ffffffff8112efce:       75 13                   jne    0xffffffff8112efe3
ffffffff8112efd0:       41 f6 84 24 20 02 00    testb  $0x2,0x220(%r12)

>From looking at the oops log, r12 is indeed 0. Referring to source of
touch_atime:

void touch_atime(struct vfsmount *mnt, struct dentry *dentry)
{
        struct inode *inode = dentry->d_inode;
        struct timespec now;

        if (mnt_want_write(mnt))
                return;
        if (inode->i_flags & S_NOATIME)
                goto out;


We're oopsing on the ionode->i_flags dereference, so dentry->d_inode is NULL. I 
think it's safe to assume that this function should not be called on a negative 
dentry.

>From a brief look at ecryptfs_read_update_atime, it seems that there is
no reference on the "lower" dentry when it's added to d_fsdata, so
perhaps we need a check for lower_dentry != NULL around that call to
touch_atime. I'm not entirely sure that this is the correct solution,
but we shouldn't be updating dentries for files that have been removed.

-- 
BUG: unable to handle kernel NULL pointer dereference at 0000000000000228
https://bugs.launchpad.net/bugs/387073
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to