summaryrefslogtreecommitdiffstats
path: root/sys/gnu/fs/xfs/FreeBSD/xfs_super.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/gnu/fs/xfs/FreeBSD/xfs_super.c')
-rw-r--r--sys/gnu/fs/xfs/FreeBSD/xfs_super.c279
1 files changed, 0 insertions, 279 deletions
diff --git a/sys/gnu/fs/xfs/FreeBSD/xfs_super.c b/sys/gnu/fs/xfs/FreeBSD/xfs_super.c
deleted file mode 100644
index 747a5da..0000000
--- a/sys/gnu/fs/xfs/FreeBSD/xfs_super.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (c) 2000-2005 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.
- *
- * This program is distributed in the hope that it would 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include "xfs.h"
-#include "xfs_bit.h"
-#include "xfs_log.h"
-#include "xfs_clnt.h"
-#include "xfs_inum.h"
-#include "xfs_trans.h"
-#include "xfs_sb.h"
-#include "xfs_ag.h"
-#include "xfs_dir.h"
-#include "xfs_dir2.h"
-#include "xfs_alloc.h"
-#include "xfs_dmapi.h"
-#include "xfs_quota.h"
-#include "xfs_mount.h"
-#include "xfs_bmap_btree.h"
-#include "xfs_alloc_btree.h"
-#include "xfs_ialloc_btree.h"
-#include "xfs_dir_sf.h"
-#include "xfs_dir2_sf.h"
-#include "xfs_attr_sf.h"
-#include "xfs_dinode.h"
-#include "xfs_inode.h"
-#include "xfs_btree.h"
-#include "xfs_ialloc.h"
-#include "xfs_bmap.h"
-#include "xfs_rtalloc.h"
-#include "xfs_error.h"
-#include "xfs_itable.h"
-#include "xfs_rw.h"
-#include "xfs_acl.h"
-#include "xfs_cap.h"
-#include "xfs_mac.h"
-#include "xfs_attr.h"
-#include "xfs_buf_item.h"
-#include "xfs_utils.h"
-#include "xfs_version.h"
-#include "xfs_buf.h"
-
-#include <sys/priv.h>
-
-#include <geom/geom.h>
-#include <geom/geom_vfs.h>
-
-extern struct vop_vector xfs_fifoops;
-extern struct xfs_vnodeops xfs_vnodeops;
-
-__uint64_t
-xfs_max_file_offset(
- unsigned int blockshift)
-{
-
- return (OFF_MAX);
-}
-
-void
-xfs_initialize_vnode(
- bhv_desc_t *bdp,
- xfs_vnode_t *xvp,
- bhv_desc_t *inode_bhv,
- int unlock)
-{
- xfs_inode_t *ip = XFS_BHVTOI(inode_bhv);
-
- if (!inode_bhv->bd_vobj) {
- xvp->v_vfsp = bhvtovfs(bdp);
- bhv_desc_init(inode_bhv, ip, xvp, &xfs_vnodeops);
- bhv_insert(VN_BHV_HEAD(xvp), inode_bhv);
- }
-
- /*
- * XXX: Use VNON as an indication of freshly allocated vnode
- * which need to be initialized and unlocked.
- * This is _not_ like the same place in Linux version of
- * routine.
- */
-
- if (xvp->v_vnode->v_type != VNON)
- return;
-
- xvp->v_vnode->v_type = IFTOVT(ip->i_d.di_mode);
-
- if (xvp->v_vnode->v_type == VFIFO)
- xvp->v_vnode->v_op = &xfs_fifoops;
-
- ASSERT_VOP_LOCKED(xvp->v_vnode, "xfs_initialize_vnode");
-
- /* For new inodes we need to set the ops vectors,
- * and unlock the inode.
- */
- if (ip->i_d.di_mode != 0 && unlock)
- VOP_UNLOCK(xvp->v_vnode, 0);
-}
-
-#if 0
-struct vnode *
-xfs_get_inode(
- bhv_desc_t *bdp,
- xfs_ino_t ino,
- int flags)
-{
- return NULL;
-}
-#endif
-
-/*ARGSUSED*/
-int
-xfs_blkdev_get(
- xfs_mount_t *mp,
- const char *name,
- struct vnode **bdevp)
-{
- struct nameidata nd;
- struct nameidata *ndp = &nd;
- int error, ronly;
- struct thread *td;
- struct vnode *devvp;
- struct g_consumer *cp;
- struct g_provider *pp;
- accmode_t accmode;
-
- td = curthread;
-
- NDINIT(ndp, LOOKUP, FOLLOW, UIO_SYSSPACE, name, td);
- if ((error = namei(ndp)) != 0)
- return (error);
- NDFREE(ndp, NDF_ONLY_PNBUF);
- devvp = ndp->ni_vp;
-
- if (!vn_isdisk(devvp, &error)) {
- vrele(devvp);
- return (error);
- }
-
- vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
-
- ronly = ((XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY) != 0);
- accmode = VREAD;
- if (!ronly)
- accmode |= VWRITE;
- error = VOP_ACCESS(devvp, accmode, td->td_ucred, td);
- if (error)
- error = priv_check(td, PRIV_VFS_MOUNT_PERM);
- if (error) {
- vput(devvp);
- return (error);
- }
-
- DROP_GIANT();
- g_topology_lock();
-
- /*
- * XXX: Do not allow more than one consumer to open a device
- * associated with a particular GEOM provider.
- * This disables multiple read-only mounts of a device,
- * but it gets rid of panics in bmemfree() when you try to
- * mount the same device more than once.
- * During mounting, XFS does a bread() of the superblock, but does
- * not brelse() it. A subsequent mount of the same device
- * will try to bread() the superblock, resulting in a panic in
- * bremfree(), "buffer not on queue".
- */
- pp = g_dev_getprovider(devvp->v_rdev);
- if ((pp != NULL) && ((pp->acr | pp->acw | pp->ace ) != 0))
- error = EPERM;
- else
- error = g_vfs_open(devvp, &cp, "xfs", ronly ? 0 : 1);
-
- g_topology_unlock();
- PICKUP_GIANT();
-
- if (error) {
- vput(devvp);
- return (error);
- }
- VOP_UNLOCK(devvp, 0);
-
- devvp->v_bufobj.bo_private = cp;
- devvp->v_bufobj.bo_ops = &xfs_bo_ops;
-
- *bdevp = devvp;
- return (0);
-}
-
-void
-xfs_blkdev_put(
- struct vnode *devvp)
-{
- struct g_consumer *cp;
-
- if (devvp == NULL)
- return;
-
- vinvalbuf(devvp, V_SAVE, 0, 0);
-
- cp = devvp->v_bufobj.bo_private;
- DROP_GIANT();
- g_topology_lock();
- g_wither_geom_close(cp->geom, ENXIO);
- g_topology_unlock();
- PICKUP_GIANT();
-
- vrele(devvp);
-}
-
-void
-xfs_mountfs_check_barriers(xfs_mount_t *mp)
-{
- printf("xfs_mountfs_check_barriers NI\n");
-}
-
-void
-xfs_flush_inode(
- xfs_inode_t *ip)
-{
- printf("xfs_flush_inode NI\n");
-}
-
-void
-xfs_flush_device(
- xfs_inode_t *ip)
-{
- printf("xfs_flush_device NI\n");
- xfs_log_force(ip->i_mount, (xfs_lsn_t)0, XFS_LOG_FORCE|XFS_LOG_SYNC);
-}
-
-
-void
-xfs_blkdev_issue_flush(
- xfs_buftarg_t *buftarg)
-{
- printf("xfs_blkdev_issue_flush NI\n");
-}
-
-int
-init_xfs_fs( void )
-{
- static const char message[] =
- XFS_VERSION_STRING " with " XFS_BUILD_OPTIONS " enabled\n";
-
- printf(message);
-
- vn_init();
- xfs_init();
- uuid_init();
-#ifdef RMC
- vfs_initdmapi();
-#endif
- vfs_initquota();
-
- return 0;
-}
-
-void
-exit_xfs_fs(void)
-{
- xfs_cleanup();
- vfs_exitquota();
-#ifdef RMC
- vfs_exitdmapi();
-#endif
-}
-
OpenPOWER on IntegriCloud