本文整理汇总了C++中crfree函数的典型用法代码示例。如果您正苦于以下问题:C++ crfree函数的具体用法?C++ crfree怎么用?C++ crfree使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了crfree函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: zpl_xattr_get
static int
zpl_xattr_get(struct inode *ip, const char *name, void *value, size_t size)
{
znode_t *zp = ITOZ(ip);
cred_t *cr = CRED();
int error;
crhold(cr);
rw_enter(&zp->z_xattr_lock, RW_READER);
error = __zpl_xattr_get(ip, name, value, size, cr);
rw_exit(&zp->z_xattr_lock);
crfree(cr);
return (error);
}
开发者ID:GarrisonJ,项目名称:zfs,代码行数:15,代码来源:zpl_xattr.c
示例2: zpl_iter_write_common
static ssize_t
zpl_iter_write_common(struct kiocb *kiocb, const struct iovec *iovp,
unsigned long nr_segs, size_t count, uio_seg_t seg, size_t skip)
{
cred_t *cr = CRED();
struct file *filp = kiocb->ki_filp;
ssize_t wrote;
crhold(cr);
wrote = zpl_write_common_iovec(filp->f_mapping->host, iovp, count,
nr_segs, &kiocb->ki_pos, seg, filp->f_flags, cr, skip);
crfree(cr);
return (wrote);
}
开发者ID:krichter722,项目名称:zfs,代码行数:15,代码来源:zpl_file.c
示例3: zpl_snapdir_rename
int
zpl_snapdir_rename(struct inode *sdip, struct dentry *sdentry,
struct inode *tdip, struct dentry *tdentry)
{
cred_t *cr = CRED();
int error;
crhold(cr);
error = -zfsctl_snapdir_rename(sdip, dname(sdentry),
tdip, dname(tdentry), cr, 0);
ASSERT3S(error, <=, 0);
crfree(cr);
return (error);
}
开发者ID:RichardChen3511,项目名称:zfs-1,代码行数:15,代码来源:zpl_ctldir.c
示例4: pgetucred
/*
* Get the "ucred" of a process.
*/
struct ucred_s *
pgetucred(proc_t *p)
{
cred_t *cr;
struct ucred_s *uc;
mutex_enter(&p->p_crlock);
cr = p->p_cred;
crhold(cr);
mutex_exit(&p->p_crlock);
uc = cred2ucred(cr, p->p_pid, NULL, CRED());
crfree(cr);
return (uc);
}
开发者ID:MatiasNAmendola,项目名称:AuroraUX-SunOS,代码行数:19,代码来源:cred.c
示例5: mac_proc_vm_revoke
/*
* When relabeling a process, call out to the policies for the maximum
* permission allowed for each object type we know about in its memory space,
* and revoke access (in the least surprising ways we know) when necessary.
* The process lock is not held here.
*/
void
mac_proc_vm_revoke(struct thread *td)
{
struct ucred *cred;
PROC_LOCK(td->td_proc);
cred = crhold(td->td_proc->p_ucred);
PROC_UNLOCK(td->td_proc);
/* XXX freeze all other threads */
mac_proc_vm_revoke_recurse(td, cred,
&td->td_proc->p_vmspace->vm_map);
/* XXX allow other threads to continue */
crfree(cred);
}
开发者ID:FelixHaller,项目名称:libuinet,代码行数:22,代码来源:mac_process.c
示例6: zpl_release
static int
zpl_release(struct inode *ip, struct file *filp)
{
cred_t *cr = CRED();
int error;
if (ITOZ(ip)->z_atime_dirty)
zfs_mark_inode_dirty(ip);
crhold(cr);
error = -zfs_close(ip, filp->f_flags, cr);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:shenyan1,项目名称:zfs,代码行数:16,代码来源:zpl_file.c
示例7: zpl_sync_fs
static int
zpl_sync_fs(struct super_block *sb, int wait)
{
fstrans_cookie_t cookie;
cred_t *cr = CRED();
int error;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfs_sync(sb, wait, cr);
spl_fstrans_unmark(cookie);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:koplover,项目名称:zfs,代码行数:16,代码来源:zpl_super.c
示例8: zpl_rmdir
static int
zpl_rmdir(struct inode * dir, struct dentry *dentry)
{
cred_t *cr = CRED();
int error;
fstrans_cookie_t cookie;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfs_rmdir(dir, dname(dentry), NULL, cr, 0);
spl_fstrans_unmark(cookie);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:10144161,项目名称:zfs,代码行数:16,代码来源:zpl_inode.c
示例9: zpl_commit_metadata
static int
zpl_commit_metadata(struct inode *inode)
{
cred_t *cr = CRED();
fstrans_cookie_t cookie;
int error;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfs_fsync(inode, 0, cr);
spl_fstrans_unmark(cookie);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:RichardChen3511,项目名称:zfs-1,代码行数:16,代码来源:zpl_export.c
示例10: zpl_fsync
/*
* Linux 2.6.x - 2.6.34 API,
* Through 2.6.34 the nfsd kernel server would pass a NULL 'file struct *'
* to the fops->fsync() hook. For this reason, we must be careful not to
* use filp unconditionally.
*/
static int
zpl_fsync(struct file *filp, struct dentry *dentry, int datasync)
{
cred_t *cr = CRED();
int error;
fstrans_cookie_t cookie;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfs_fsync(dentry->d_inode, datasync, cr);
spl_fstrans_unmark(cookie);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:Alyseo,项目名称:zfs,代码行数:22,代码来源:zpl_file.c
示例11: zpl_iterate
static int
zpl_iterate(struct file *filp, struct dir_context *ctx)
{
cred_t *cr = CRED();
int error;
fstrans_cookie_t cookie;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfs_readdir(file_inode(filp), ctx, cr);
spl_fstrans_unmark(cookie);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:krichter722,项目名称:zfs,代码行数:16,代码来源:zpl_file.c
示例12: crref
static struct dentry *afs_export_get_dentry(struct super_block *sb,
void *inump)
{
struct dentry *dp;
cred_t *credp;
credp = crref();
AFS_GLOCK();
dp = get_dentry_from_fid(credp, inump);
AFS_GUNLOCK();
crfree(credp);
return dp;
}
开发者ID:gsell,项目名称:openafs-osd,代码行数:16,代码来源:osi_export.c
示例13: zpl_xattr_set
static int
zpl_xattr_set(struct inode *ip, const char *name, const void *value,
size_t size, int flags)
{
znode_t *zp = ITOZ(ip);
zfs_sb_t *zsb = ZTOZSB(zp);
cred_t *cr = CRED();
int error;
crhold(cr);
rw_enter(&ITOZ(ip)->z_xattr_lock, RW_WRITER);
/*
* Before setting the xattr check to see if it already exists.
* This is done to ensure the following optional flags are honored.
*
* XATTR_CREATE: fail if xattr already exists
* XATTR_REPLACE: fail if xattr does not exist
*/
error = __zpl_xattr_get(ip, name, NULL, 0, cr);
if (error < 0) {
if (error != -ENODATA)
goto out;
if ((error == -ENODATA) && (flags & XATTR_REPLACE))
goto out;
} else {
error = -EEXIST;
if (flags & XATTR_CREATE)
goto out;
}
/* Preferentially store the xattr as a SA for better performance */
if (zsb->z_use_sa && zsb->z_xattr_sa && zp->z_is_sa) {
error = zpl_xattr_set_sa(ip, name, value, size, flags, cr);
if (error == 0)
goto out;
}
error = zpl_xattr_set_dir(ip, name, value, size, flags, cr);
out:
rw_exit(&ITOZ(ip)->z_xattr_lock);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:krauter,项目名称:zfs-1,代码行数:47,代码来源:zpl_xattr.c
示例14: afs_root
/* afs_root - stat the root of the file system. AFS global held on entry. */
static int
afs_root(struct super_block *afsp)
{
afs_int32 code = 0;
struct vrequest treq;
struct vcache *tvp = 0;
AFS_STATCNT(afs_root);
if (afs_globalVp && (afs_globalVp->f.states & CStatd)) {
tvp = afs_globalVp;
} else {
cred_t *credp = crref();
if (afs_globalVp) {
afs_PutVCache(afs_globalVp);
afs_globalVp = NULL;
}
if (!(code = afs_InitReq(&treq, credp)) && !(code = afs_CheckInit())) {
tvp = afs_GetVCache(&afs_rootFid, &treq, NULL, NULL);
if (tvp) {
struct inode *ip = AFSTOV(tvp);
struct vattr vattr;
afs_getattr(tvp, &vattr, credp);
afs_fill_inode(ip, &vattr);
/* setup super_block and mount point inode. */
afs_globalVp = tvp;
#if defined(HAVE_LINUX_D_MAKE_ROOT)
afsp->s_root = d_make_root(ip);
#else
afsp->s_root = d_alloc_root(ip);
#endif
#if !defined(STRUCT_SUPER_BLOCK_HAS_S_D_OP)
afsp->s_root->d_op = &afs_dentry_operations;
#endif
} else
code = ENOENT;
}
crfree(credp);
}
afs_Trace2(afs_iclSetp, CM_TRACE_VFSROOT, ICL_TYPE_POINTER, afs_globalVp,
ICL_TYPE_INT32, code);
return code;
}
开发者ID:ysei,项目名称:openafs,代码行数:48,代码来源:osi_vfsops.c
示例15: zpl_get_parent
static struct dentry *
zpl_get_parent(struct dentry *child)
{
cred_t *cr = CRED();
struct inode *ip;
int error;
crhold(cr);
error = -zfs_lookup(child->d_inode, "..", &ip, 0, cr, NULL, NULL);
crfree(cr);
ASSERT3S(error, <=, 0);
if (error)
return ERR_PTR(error);
return zpl_dentry_obtain_alias(ip);
}
开发者ID:Kream,项目名称:zfs,代码行数:17,代码来源:zpl_export.c
示例16: zpl_rename
static int
zpl_rename(struct inode *sdip, struct dentry *sdentry,
struct inode *tdip, struct dentry *tdentry)
{
cred_t *cr = CRED();
int error;
fstrans_cookie_t cookie;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfs_rename(sdip, dname(sdentry), tdip, dname(tdentry), cr, 0);
spl_fstrans_unmark(cookie);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:MarkGavalda,项目名称:zfs,代码行数:17,代码来源:zpl_inode.c
示例17: zpl_follow_link
const char *
zpl_follow_link(struct dentry *dentry, void **symlink_cookie)
#endif
{
cred_t *cr = CRED();
struct inode *ip = dentry->d_inode;
struct iovec iov;
uio_t uio;
char *link;
int error;
fstrans_cookie_t cookie;
crhold(cr);
iov.iov_len = MAXPATHLEN;
iov.iov_base = link = kmem_zalloc(MAXPATHLEN, KM_SLEEP);
uio.uio_iov = &iov;
uio.uio_iovcnt = 1;
uio.uio_skip = 0;
uio.uio_resid = (MAXPATHLEN - 1);
uio.uio_segflg = UIO_SYSSPACE;
cookie = spl_fstrans_mark();
error = -zfs_readlink(ip, &uio, cr);
spl_fstrans_unmark(cookie);
if (error)
kmem_free(link, MAXPATHLEN);
crfree(cr);
#ifdef HAVE_FOLLOW_LINK_NAMEIDATA
if (error)
nd_set_link(nd, ERR_PTR(error));
else
nd_set_link(nd, link);
return (NULL);
#else
if (error)
return (ERR_PTR(error));
else
return (*symlink_cookie = link);
#endif
}
开发者ID:10144161,项目名称:zfs,代码行数:46,代码来源:zpl_inode.c
示例18: zpl_iterate
static int
zpl_iterate(struct file *filp, struct dir_context *ctx)
{
struct dentry *dentry = filp->f_path.dentry;
cred_t *cr = CRED();
int error;
fstrans_cookie_t cookie;
crhold(cr);
cookie = spl_fstrans_mark();
error = -zfs_readdir(dentry->d_inode, ctx, cr);
spl_fstrans_unmark(cookie);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:Alyseo,项目名称:zfs,代码行数:17,代码来源:zpl_file.c
示例19: userenter
/*
* Passively intercepts the thread switch function to increase the thread
* priority from a user priority to a kernel priority, reducing
* syscall and trap overhead for the case where no switch occurs.
*
* Synchronizes td_ucred with p_ucred. This is used by system calls,
* signal handling, faults, AST traps, and anything else that enters the
* kernel from userland and provides the kernel with a stable read-only
* copy of the process ucred.
*/
static __inline void
userenter(struct thread *curtd, struct proc *curp)
{
struct ucred *ocred;
struct ucred *ncred;
curtd->td_release = lwkt_passive_release;
if (curtd->td_ucred != curp->p_ucred) {
ncred = crhold(curp->p_ucred);
ocred = curtd->td_ucred;
curtd->td_ucred = ncred;
if (ocred)
crfree(ocred);
}
}
开发者ID:mihaicarabas,项目名称:dragonfly,代码行数:27,代码来源:trap.c
示例20: zpl_open
static int
zpl_open(struct inode *ip, struct file *filp)
{
cred_t *cr = CRED();
int error;
error = generic_file_open(ip, filp);
if (error)
return (error);
crhold(cr);
error = -zfs_open(ip, filp->f_mode, filp->f_flags, cr);
crfree(cr);
ASSERT3S(error, <=, 0);
return (error);
}
开发者ID:shenyan1,项目名称:zfs,代码行数:17,代码来源:zpl_file.c
注:本文中的crfree函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论