save->luc.luc_fsuid = current->fsuid;
save->luc.luc_fsgid = current->fsgid;
save->luc.luc_cap = current->cap_effective;
-
+ save->luc.luc_nid = current->user->nid;
+
current->uid = uc->luc_uid;
current->gid = uc->luc_gid;
current->fsuid = uc->luc_fsuid;
current->fsgid = uc->luc_fsgid;
current->cap_effective = uc->luc_cap;
+ current->user->nid = uc->luc_nid;
push_group_info(save, uc->luc_ginfo);
}
current->fsuid = saved->luc.luc_fsuid;
current->fsgid = saved->luc.luc_fsgid;
current->cap_effective = saved->luc.luc_cap;
-
+ current->user->nid = saved->luc.luc_nid;
pop_group_info(saved, uc->luc_ginfo);
}
dirent->lld_off = offset;
OBD_ALLOC(dirent, sizeof(*dirent));
-
+ if (!dirent)
+ return -ENOMEM;
+
list_add_tail(&dirent->lld_list, buf->lrc_list);
buf->lrc_dirent = dirent;
LASSERT(size > sizeof(sizeof(struct hlist_head)));
obd_memtable_size = size / sizeof(struct hlist_head);
- CWARN("allocating %lu malloc entries...\n",
+ CWARN("allocating %lu malloc entries\n",
(unsigned long)obd_memtable_size);
obd_memtable = kmalloc(size, GFP_KERNEL);
for (i = 0, head = obd_memtable; i < obd_memtable_size; i++, head++) {
hlist_for_each(node, head) {
mt = hlist_entry(node, struct mem_track, m_hash);
- CWARN(" ptr: 0x%p, size: %d, src at \"%s\"\n",
+ CWARN(" [%s] ptr: 0x%p, size: %d, src at \"%s\"\n",
+ ((mt->m_flags & MT_FLAGS_WRONG_SIZE) ?
+ "wrong ck size" : "leaked memory"),
mt->m_ptr, mt->m_size, mt->m_loc);
}
}
spin_unlock(&obd_memlist_lock);
#endif
+ /* remove for production */
+ portals_debug_dumplog();
}
}
EXPORT_SYMBOL(lvfs_memdbg_show);