File: [Development] / xfs-linux-nodel / xfs_utils.h (download)
Revision 1.10, Fri Jun 9 01:35:34 2000 UTC (17 years, 4 months ago) by lord
Branch: MAIN
CVS Tags: DELETE Changes since 1.9: +1 -2
lines
use linux security mechanisms
Merge of 2.3.99pre2-xfs:slinx:46379a by ananth.
Merge of 2.3.42-xfs:slinx:46379a by ananth.
|
/*
* Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
*/
#ifndef __XFS_UTILS_H__
#define __XFS_UTILS_H__
#define IRELE(ip) VN_RELE(XFS_ITOV(ip))
#define IHOLD(ip) VN_HOLD(XFS_ITOV(ip))
#define ITRACE(ip) vn_trace_ref(XFS_ITOV(ip), __FILE__, __LINE__, \
(inst_t *)__return_address)
#define DLF_IGET 0x01 /* get entry inode if name lookup succeeds */
#define DLF_NODNLC 0x02 /* don't use the dnlc */
#define DLF_LOCK_SHARED 0x04 /* directory locked shared */
struct bhv_desc;
struct cred;
struct ncfastdata;
struct pathname;
struct vnode;
struct xfs_inode;
struct xfs_mount;
struct xfs_trans;
extern int
xfs_rename(
struct bhv_desc *src_dir_bdp,
char *src_name,
struct vnode *target_dir_vp,
char *target_name,
struct pathname *target_pnp,
struct cred *credp);
extern int
xfs_link(
bhv_desc_t *target_dir_bdp,
struct vnode *src_vp,
char *target_name,
struct cred *credp);
#ifdef CELL_CAPABLE
extern int
cxfs_rename(
struct bhv_desc *src_dir_bdp,
char *src_name,
struct vnode *target_dir_vp,
char *target_name,
struct pathname *target_pnp,
struct cred *credp);
extern int
cxfs_link(
bhv_desc_t *target_dir_bdp,
struct vnode *src_vp,
char *target_name,
struct cred *credp);
#endif /* CELL_CAPABLE */
extern int
xfs_dir_lookup_int(
struct xfs_trans *tp,
struct bhv_desc *dir_bdp,
int flags,
char *name,
struct pathname *pnp,
xfs_ino_t *inum,
struct xfs_inode **ipp,
struct ncfastdata *fd,
uint *dir_unlocked);
extern int
xfs_truncate_file(
struct xfs_mount *mp,
struct xfs_inode *ip);
extern int
xfs_dir_ialloc(
struct xfs_trans **tpp,
struct xfs_inode *dp,
mode_t mode,
nlink_t nlink,
dev_t rdev,
struct cred *credp,
prid_t prid,
int okalloc,
struct xfs_inode **ipp,
int *committed);
extern int
xfs_stickytest(
struct xfs_inode *dp,
struct xfs_inode *ip);
extern int
xfs_droplink(
struct xfs_trans *tp,
struct xfs_inode *ip);
extern int
xfs_bumplink(
struct xfs_trans *tp,
struct xfs_inode *ip);
extern void
xfs_bump_ino_vers2(
struct xfs_trans *tp,
struct xfs_inode *ip);
#if defined(DEBUG) || defined(INDUCE_IO_ERROR)
extern int
xfs_get_fsinfo(
int fd,
char **fsname,
int64_t *fsid);
#endif
extern int
xfs_mk_sharedro(
int fd);
extern int
xfs_clear_sharedro(
int fd);
extern int xfs_pre_rename(struct vnode *vp);
extern int xfs_pre_remove(struct vnode *vp);
extern int xfs_pre_rmdir(struct vnode *vp);
extern void xfs_post_rename(struct vnode *vp);
extern void xfs_post_remove(struct vnode * vp, int last_unlink);
extern void xfs_post_rmdir(struct vnode * vp, int last_unlink);
#ifdef DEBUG
extern int
xfs_isshutdown(
struct bhv_desc *bhv);
#endif
#endif /* XFS_UTILS_H */