if (de->d_fsdata == NULL) {
                struct ll_dentry_data *lld;
 
-               OBD_ALLOC_PTR(lld);
-               if (likely(lld != NULL)) {
+               lld = kzalloc(sizeof(*lld), GFP_NOFS);
+               if (likely(lld)) {
                        spin_lock(&de->d_lock);
                        if (likely(de->d_fsdata == NULL)) {
                                de->d_fsdata = lld;
 
 
        LASSERT(max_pages > 0 && max_pages <= MD_MAX_BRW_PAGES);
 
-       OBD_ALLOC(page_pool, sizeof(page) * max_pages);
-       if (page_pool != NULL) {
+       page_pool = kzalloc(sizeof(page) * max_pages, GFP_NOFS);
+       if (page_pool) {
                page_pool[0] = page0;
        } else {
                page_pool = &page0;
        struct mgs_send_param *msp;
        int rc = 0;
 
-       OBD_ALLOC_PTR(msp);
+       msp = kzalloc(sizeof(*msp), GFP_NOFS);
        if (!msp)
                return -ENOMEM;
 
                char *param = NULL;
                char *buf;
 
-               OBD_ALLOC(param, MGS_PARAM_MAXLEN);
-               if (param == NULL) {
+               param = kzalloc(MGS_PARAM_MAXLEN, GFP_NOFS);
+               if (!param) {
                        rc = -ENOMEM;
                        goto end;
                }
        void *copy;
        int rc;
 
-       OBD_ALLOC(copy, size);
-       if (copy == NULL)
+       copy = kzalloc(size, GFP_NOFS);
+       if (!copy)
                return -ENOMEM;
 
        if (copy_from_user(copy, data, size)) {
        } else {
                struct obd_quotactl *oqctl;
 
-               OBD_ALLOC_PTR(oqctl);
-               if (oqctl == NULL)
+               oqctl = kzalloc(sizeof(*oqctl), GFP_NOFS);
+               if (!oqctl)
                        return -ENOMEM;
 
                QCTL_COPY(oqctl, qctl);
                    !oqctl->qc_dqblk.dqb_curspace) {
                        struct obd_quotactl *oqctl_tmp;
 
-                       OBD_ALLOC_PTR(oqctl_tmp);
-                       if (oqctl_tmp == NULL) {
+                       oqctl_tmp = kzalloc(sizeof(*oqctl_tmp), GFP_NOFS);
+                       if (!oqctl_tmp) {
                                rc = -ENOMEM;
                                goto out;
                        }
                        return -EINVAL;
 
                lum_size = lmv_user_md_size(1, LMV_MAGIC_V1);
-               OBD_ALLOC(tmp, lum_size);
-               if (tmp == NULL) {
+               tmp = kzalloc(lum_size, GFP_NOFS);
+               if (!tmp) {
                        rc = -ENOMEM;
                        goto free_lmv;
                }
                    sbi->ll_flags & LL_SBI_RMT_CLIENT)
                        return -EPERM;
 
-               OBD_ALLOC_PTR(oqctl);
+               oqctl = kzalloc(sizeof(*oqctl), GFP_NOFS);
                if (!oqctl)
                        return -ENOMEM;
                oqctl->qc_type = arg;
                    sbi->ll_flags & LL_SBI_RMT_CLIENT)
                        return -EPERM;
 
-               OBD_ALLOC_PTR(check);
+               check = kzalloc(sizeof(*check), GFP_NOFS);
                if (!check)
                        return -ENOMEM;
 
                struct if_quotactl_18 *qctl_18;
                struct if_quotactl *qctl_20;
 
-               OBD_ALLOC_PTR(qctl_18);
+               qctl_18 = kzalloc(sizeof(*qctl_18), GFP_NOFS);
                if (!qctl_18)
                        return -ENOMEM;
 
-               OBD_ALLOC_PTR(qctl_20);
+               qctl_20 = kzalloc(sizeof(*qctl_20), GFP_NOFS);
                if (!qctl_20) {
                        rc = -ENOMEM;
                        goto out_quotactl_18;
        case LL_IOC_QUOTACTL: {
                struct if_quotactl *qctl;
 
-               OBD_ALLOC_PTR(qctl);
+               qctl = kzalloc(sizeof(*qctl), GFP_NOFS);
                if (!qctl)
                        return -ENOMEM;
 
                struct hsm_user_request *hur;
                ssize_t                  totalsize;
 
-               OBD_ALLOC_PTR(hur);
-               if (hur == NULL)
+               hur = kzalloc(sizeof(*hur), GFP_NOFS);
+               if (!hur)
                        return -ENOMEM;
 
                /* We don't know the true size yet; copy the fixed-size part */
                struct hsm_copy *copy;
                int              rc;
 
-               OBD_ALLOC_PTR(copy);
-               if (copy == NULL)
+               copy = kzalloc(sizeof(*copy), GFP_NOFS);
+               if (!copy)
                        return -ENOMEM;
                if (copy_from_user(copy, (char *)arg, sizeof(*copy))) {
                        OBD_FREE_PTR(copy);
                struct hsm_copy *copy;
                int              rc;
 
-               OBD_ALLOC_PTR(copy);
-               if (copy == NULL)
+               copy = kzalloc(sizeof(*copy), GFP_NOFS);
+               if (!copy)
                        return -ENOMEM;
                if (copy_from_user(copy, (char *)arg, sizeof(*copy))) {
                        OBD_FREE_PTR(copy);
 
                goto out;
        }
 
-       OBD_ALLOC_PTR(op_data);
-       if (op_data == NULL) {
+       op_data = kzalloc(sizeof(*op_data), GFP_NOFS);
+       if (!op_data) {
                /* XXX We leak openhandle and request here. */
                rc = -ENOMEM;
                goto out;
 
                        goto restart;
                }
-               OBD_ALLOC(*och_p, sizeof (struct obd_client_handle));
+               *och_p = kzalloc(sizeof(struct obd_client_handle), GFP_NOFS);
                if (!*och_p) {
                        rc = -ENOMEM;
                        goto out_och_free;
                old_handle = fd->fd_och->och_fh;
        }
 
-       OBD_ALLOC_PTR(och);
-       if (och == NULL)
+       och = kzalloc(sizeof(*och), GFP_NOFS);
+       if (!och)
                return ERR_PTR(-ENOMEM);
 
        op_data = ll_prep_md_op_data(NULL, inode, inode, NULL, 0, 0,
 
        LASSERT(it_open_error(DISP_OPEN_OPEN, it) == 0);
 
-       OBD_ALLOC(och, sizeof(*och));
+       och = kzalloc(sizeof(*och), GFP_NOFS);
        if (!och) {
                rc = -ENOMEM;
                goto out;
 
        outsize = sizeof(*gfout) + pathlen;
 
-       OBD_ALLOC(gfout, outsize);
-       if (gfout == NULL)
+       gfout = kzalloc(outsize, GFP_NOFS);
+       if (!gfout)
                return -ENOMEM;
 
        if (copy_from_user(gfout, arg, sizeof(*gfout))) {
                goto out;
        }
 
-       OBD_ALLOC_PTR(obdo);
-       if (obdo == NULL) {
+       obdo = kzalloc(sizeof(*obdo), GFP_NOFS);
+       if (!obdo) {
                rc = -ENOMEM;
                goto out;
        }
        struct ll_swap_stack    *llss = NULL;
        int                      rc;
 
-       OBD_ALLOC_PTR(llss);
-       if (llss == NULL)
+       llss = kzalloc(sizeof(*llss), GFP_NOFS);
+       if (!llss)
                return -ENOMEM;
 
        llss->inode1 = file1->f_dentry->d_inode;
                return -EINVAL;
 
        /* set HSM flags */
-       OBD_ALLOC_PTR(hss);
-       if (hss == NULL) {
+       hss = kzalloc(sizeof(*hss), GFP_NOFS);
+       if (!hss) {
                rc = -ENOMEM;
                goto out;
        }
        if (rc != 0)
                goto out;
 
-       OBD_ALLOC_PTR(attr);
-       if (attr == NULL) {
+       attr = kzalloc(sizeof(*attr), GFP_NOFS);
+       if (!attr) {
                rc = -ENOMEM;
                goto out;
        }
                struct hsm_user_state   *hus;
                int                      rc;
 
-               OBD_ALLOC_PTR(hus);
-               if (hus == NULL)
+               hus = kzalloc(sizeof(*hus), GFP_NOFS);
+               if (!hus)
                        return -ENOMEM;
 
                op_data = ll_prep_md_op_data(NULL, inode, NULL, NULL, 0, 0,
                struct hsm_state_set    *hss;
                int                      rc;
 
-               OBD_ALLOC_PTR(hss);
-               if (hss == NULL)
+               hss = kzalloc(sizeof(*hss), GFP_NOFS);
+               if (!hss)
                        return -ENOMEM;
 
                if (copy_from_user(hss, (char *)arg, sizeof(*hss))) {
                struct hsm_current_action       *hca;
                int                              rc;
 
-               OBD_ALLOC_PTR(hca);
-               if (hca == NULL)
+               hca = kzalloc(sizeof(*hca), GFP_NOFS);
+               if (!hca)
                        return -ENOMEM;
 
                op_data = ll_prep_md_op_data(NULL, inode, NULL, NULL, 0, 0,
        case LL_IOC_HSM_IMPORT: {
                struct hsm_user_import *hui;
 
-               OBD_ALLOC_PTR(hui);
-               if (hui == NULL)
+               hui = kzalloc(sizeof(*hui), GFP_NOFS);
+               if (!hui)
                        return -ENOMEM;
 
                if (copy_from_user(hui, (void *)arg, sizeof(*hui))) {
                return NULL;
 
        size = sizeof(*in_data) + count * sizeof(unsigned int);
-       OBD_ALLOC(in_data, size);
-       if (in_data == NULL)
+       in_data = kzalloc(size, GFP_NOFS);
+       if (!in_data)
                return NULL;
 
        memset(in_data, 0, sizeof(*in_data));
 
        len = sizeof(struct hsm_user_request) +
              sizeof(struct hsm_user_item);
-       OBD_ALLOC(hur, len);
-       if (hur == NULL)
+       hur = kzalloc(len, GFP_NOFS);
+       if (!hur)
                return -ENOMEM;
 
        hur->hur_request.hr_action = HUA_RESTORE;
 
 
        LASSERT(exp_connect_som(ll_i2mdexp(inode)));
 
-       OBD_ALLOC_PTR(op_data);
-       if (op_data == NULL) {
+       op_data = kzalloc(sizeof(*op_data), GFP_NOFS);
+       if (!op_data) {
                CERROR("can't allocate op_data\n");
                return;
        }
        if (OBD_FAIL_CHECK(OBD_FAIL_LDLM_CLOSE_THREAD))
                return -EINTR;
 
-       OBD_ALLOC(lcq, sizeof(*lcq));
-       if (lcq == NULL)
+       lcq = kzalloc(sizeof(*lcq), GFP_NOFS);
+       if (!lcq)
                return -ENOMEM;
 
        spin_lock_init(&lcq->lcq_lock);
 
        class_uuid_t uuid;
        int i;
 
-       OBD_ALLOC(sbi, sizeof(*sbi));
+       sbi = kzalloc(sizeof(*sbi), GFP_NOFS);
        if (!sbi)
                return NULL;
 
                return -EINVAL;
        }
 
-       OBD_ALLOC_PTR(data);
-       if (data == NULL)
+       data = kzalloc(sizeof(*data), GFP_NOFS);
+       if (!data)
                return -ENOMEM;
 
-       OBD_ALLOC_PTR(osfs);
-       if (osfs == NULL) {
+       osfs = kzalloc(sizeof(*osfs), GFP_NOFS);
+       if (!osfs) {
                OBD_FREE_PTR(data);
                return -ENOMEM;
        }
            valid != CLIENT_CONNECT_MDT_REQD) {
                char *buf;
 
-               OBD_ALLOC_WAIT(buf, PAGE_CACHE_SIZE);
+               buf = kzalloc(PAGE_CACHE_SIZE, GFP_KERNEL);
                obd_connect_flags2str(buf, PAGE_CACHE_SIZE,
                                      valid ^ CLIENT_CONNECT_MDT_REQD, ",");
                LCONSOLE_ERROR_MSG(0x170, "Server %s does not support "
        else if (sbi->ll_flags & LL_SBI_ACL)
                valid |= OBD_MD_FLACL;
 
-       OBD_ALLOC_PTR(op_data);
-       if (op_data == NULL) {
+       op_data = kzalloc(sizeof(*op_data), GFP_NOFS);
+       if (!op_data) {
                err = -ENOMEM;
                goto out_lock_cn_cb;
        }
 
        CDEBUG(D_VFSTRACE, "VFS Op: sb %p\n", sb);
 
-       OBD_ALLOC_PTR(cfg);
-       if (cfg == NULL)
+       cfg = kzalloc(sizeof(*cfg), GFP_NOFS);
+       if (!cfg)
                return -ENOMEM;
 
        try_module_get(THIS_MODULE);
        CDEBUG(D_CONFIG, "Found profile %s: mdc=%s osc=%s\n", profilenm,
               lprof->lp_md, lprof->lp_dt);
 
-       OBD_ALLOC(dt, strlen(lprof->lp_dt) + instlen + 2);
+       dt = kzalloc(strlen(lprof->lp_dt) + instlen + 2, GFP_NOFS);
        if (!dt) {
                err = -ENOMEM;
                goto out_free;
        }
        sprintf(dt, "%s-%p", lprof->lp_dt, cfg->cfg_instance);
 
-       OBD_ALLOC(md, strlen(lprof->lp_md) + instlen + 2);
+       md = kzalloc(strlen(lprof->lp_md) + instlen + 2, GFP_NOFS);
        if (!md) {
                err = -ENOMEM;
                goto out_free;
        /* We always do an MDS RPC, even if we're only changing the size;
         * only the MDS knows whether truncate() should fail with -ETXTBUSY */
 
-       OBD_ALLOC_PTR(op_data);
-       if (op_data == NULL)
+       op_data = kzalloc(sizeof(*op_data), GFP_NOFS);
+       if (!op_data)
                return -ENOMEM;
 
        if (!S_ISDIR(inode->i_mode)) {
        }
        obd->obd_force = 1;
 
-       OBD_ALLOC_PTR(ioc_data);
+       ioc_data = kzalloc(sizeof(*ioc_data), GFP_NOFS);
        if (ioc_data) {
                obd_iocontrol(IOC_OSC_SET_ACTIVE, sbi->ll_md_exp,
                              sizeof(*ioc_data), ioc_data, NULL);
                return ERR_PTR(-ENAMETOOLONG);
 
        if (op_data == NULL)
-               OBD_ALLOC_PTR(op_data);
+               op_data = kzalloc(sizeof(*op_data), GFP_NOFS);
 
        if (op_data == NULL)
                return ERR_PTR(-ENOMEM);
 
 
        /* Because inode is NULL, ll_prep_md_op_data can not
         * be used here. So we allocate op_data ourselves */
-       OBD_ALLOC_PTR(op_data);
-       if (op_data == NULL)
+       op_data = kzalloc(sizeof(*op_data), GFP_NOFS);
+       if (!op_data)
                return ERR_PTR(-ENOMEM);
 
        op_data->op_fid1 = *fid;
 
 {
        struct rmtacl_ctl_entry *rce;
 
-       OBD_ALLOC_PTR(rce);
+       rce = kzalloc(sizeof(*rce), GFP_NOFS);
        if (!rce)
                return NULL;
 
 {
        struct eacl_entry *ee;
 
-       OBD_ALLOC_PTR(ee);
+       ee = kzalloc(sizeof(*ee), GFP_NOFS);
        if (!ee)
                return NULL;
 
 
        if (ll_iocontrol_magic == NULL)
                goto out_mem1;
 
-       OBD_ALLOC_WAIT(loop_dev, max_loop * sizeof(*loop_dev));
+       loop_dev = kzalloc(max_loop * sizeof(*loop_dev), GFP_KERNEL);
        if (!loop_dev)
                goto out_mem1;
 
-       OBD_ALLOC_WAIT(disks, max_loop * sizeof(*disks));
+       disks = kzalloc(max_loop * sizeof(*disks), GFP_KERNEL);
        if (!disks)
                goto out_mem2;
 
 
               dentry->d_name.len, dentry->d_name.name, dir->i_ino,
               dir->i_generation, dir, file, open_flags, mode, *opened);
 
-       OBD_ALLOC(it, sizeof(*it));
+       it = kzalloc(sizeof(*it), GFP_NOFS);
        if (!it)
                return -ENOMEM;
 
 
        char             *dname;
 
        entry_size = sizeof(struct ll_sa_entry) + (len & ~3) + 4;
-       OBD_ALLOC(entry, entry_size);
-       if (unlikely(entry == NULL))
+       entry = kzalloc(entry_size, GFP_NOFS);
+       if (unlikely(!entry))
                return ERR_PTR(-ENOMEM);
 
        CDEBUG(D_READA, "alloc sa entry %.*s(%p) index %llu\n",
        struct ll_statahead_info *sai;
        int                    i;
 
-       OBD_ALLOC_PTR(sai);
+       sai = kzalloc(sizeof(*sai), GFP_NOFS);
        if (!sai)
                return NULL;
 
        struct ldlm_enqueue_info *einfo;
        struct md_op_data       *op_data;
 
-       OBD_ALLOC_PTR(einfo);
-       if (einfo == NULL)
+       einfo = kzalloc(sizeof(*einfo), GFP_NOFS);
+       if (!einfo)
                return -ENOMEM;
 
-       OBD_ALLOC_PTR(minfo);
-       if (minfo == NULL) {
+       minfo = kzalloc(sizeof(*minfo), GFP_NOFS);
+       if (!minfo) {
                OBD_FREE_PTR(einfo);
                return -ENOMEM;
        }
 
                goto failed;
        }
 
-       OBD_ALLOC(lli->lli_symlink_name, symlen);
+       lli->lli_symlink_name = kzalloc(symlen, GFP_NOFS);
        /* do not return an error if we cannot cache the symlink locally */
        if (lli->lli_symlink_name) {
                memcpy(lli->lli_symlink_name, *symname, symlen);
 
 
        xattr->xe_namelen = strlen(xattr_name) + 1;
 
-       OBD_ALLOC(xattr->xe_name, xattr->xe_namelen);
+       xattr->xe_name = kzalloc(xattr->xe_namelen, GFP_NOFS);
        if (!xattr->xe_name) {
                CDEBUG(D_CACHE, "failed to alloc xattr name %u\n",
                       xattr->xe_namelen);
                goto err_name;
        }
-       OBD_ALLOC(xattr->xe_value, xattr_val_len);
+       xattr->xe_value = kzalloc(xattr_val_len, GFP_NOFS);
        if (!xattr->xe_value) {
                CDEBUG(D_CACHE, "failed to alloc xattr value %d\n",
                       xattr_val_len);