linux/fs/ufs/super.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 *  linux/fs/ufs/super.c
 *
 * Copyright (C) 1998
 * Daniel Pirkl <[email protected]>
 * Charles University, Faculty of Mathematics and Physics
 */

/* Derived from
 *
 *  linux/fs/ext2/super.c
 *
 * Copyright (C) 1992, 1993, 1994, 1995
 * Remy Card ([email protected])
 * Laboratoire MASI - Institut Blaise Pascal
 * Universite Pierre et Marie Curie (Paris VI)
 *
 *  from
 *
 *  linux/fs/minix/inode.c
 *
 *  Copyright (C) 1991, 1992  Linus Torvalds
 *
 *  Big-endian to little-endian byte-swapping/bitmaps by
 *        David S. Miller ([email protected]), 1995
 */
 
/*
 * Inspired by
 *
 *  linux/fs/ufs/super.c
 *
 * Copyright (C) 1996
 * Adrian Rodriguez ([email protected])
 * Laboratory for Computer Science Research Computing Facility
 * Rutgers, The State University of New Jersey
 *
 * Copyright (C) 1996  Eddie C. Dost  ([email protected])
 *
 * Kernel module support added on 96/04/26 by
 * Stefan Reinauer <[email protected]>
 *
 * Module usage counts added on 96/04/29 by
 * Gertjan van Wingerde <[email protected]>
 *
 * Clean swab support on 19970406 by
 * Francois-Rene Rideau <[email protected]>
 *
 * 4.4BSD (FreeBSD) support added on February 1st 1998 by
 * Niels Kristian Bech Jensen <[email protected]> partially based
 * on code by Martin von Loewis <[email protected]>.
 *
 * NeXTstep support added on February 5th 1998 by
 * Niels Kristian Bech Jensen <[email protected]>.
 *
 * write support Daniel Pirkl <[email protected]> 1998
 * 
 * HP/UX hfs filesystem support added by
 * Martin K. Petersen <[email protected]>, August 1999
 *
 * UFS2 (of FreeBSD 5.x) support added by
 * Niraj Kumar <[email protected]>, Jan 2004
 *
 * UFS2 write support added by
 * Evgeniy Dushistov <[email protected]>, 2007
 */

#include <linux/exportfs.h>
#include <linux/module.h>
#include <linux/bitops.h>

#include <linux/stdarg.h>

#include <linux/uaccess.h>

#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/slab.h>
#include <linux/time.h>
#include <linux/stat.h>
#include <linux/string.h>
#include <linux/blkdev.h>
#include <linux/backing-dev.h>
#include <linux/init.h>
#include <linux/parser.h>
#include <linux/buffer_head.h>
#include <linux/vfs.h>
#include <linux/log2.h>
#include <linux/mount.h>
#include <linux/seq_file.h>
#include <linux/iversion.h>

#include "ufs_fs.h"
#include "ufs.h"
#include "swab.h"
#include "util.h"

static struct inode *ufs_nfs_get_inode(struct super_block *sb, u64 ino, u32 generation)
{}

static struct dentry *ufs_fh_to_dentry(struct super_block *sb, struct fid *fid,
				       int fh_len, int fh_type)
{}

static struct dentry *ufs_fh_to_parent(struct super_block *sb, struct fid *fid,
				       int fh_len, int fh_type)
{}

static struct dentry *ufs_get_parent(struct dentry *child)
{}

static const struct export_operations ufs_export_ops =;

#ifdef CONFIG_UFS_DEBUG
/*
 * Print contents of ufs_super_block, useful for debugging
 */
static void ufs_print_super_stuff(struct super_block *sb,
				  struct ufs_super_block_first *usb1,
				  struct ufs_super_block_second *usb2,
				  struct ufs_super_block_third *usb3)
{}

/*
 * Print contents of ufs_cylinder_group, useful for debugging
 */
static void ufs_print_cylinder_stuff(struct super_block *sb,
				     struct ufs_cylinder_group *cg)
{}
#else
#define ufs_print_super_stuff
#define ufs_print_cylinder_stuff
#endif /* CONFIG_UFS_DEBUG */

static const struct super_operations ufs_super_ops;

void ufs_error (struct super_block * sb, const char * function,
	const char * fmt, ...)
{}

void ufs_panic (struct super_block * sb, const char * function,
	const char * fmt, ...)
{}

void ufs_warning (struct super_block * sb, const char * function,
	const char * fmt, ...)
{}

enum {};

static const match_table_t tokens =;

static int ufs_parse_options (char * options, unsigned * mount_options)
{}

/*
 * Different types of UFS hold fs_cstotal in different
 * places, and use different data structure for it.
 * To make things simpler we just copy fs_cstotal to ufs_sb_private_info
 */
static void ufs_setup_cstotal(struct super_block *sb)
{}

/*
 * Read on-disk structures associated with cylinder groups
 */
static int ufs_read_cylinder_structures(struct super_block *sb)
{}

/*
 * Sync our internal copy of fs_cstotal with disk
 */
static void ufs_put_cstotal(struct super_block *sb)
{}

/**
 * ufs_put_super_internal() - put on-disk intrenal structures
 * @sb: pointer to super_block structure
 * Put on-disk structures associated with cylinder groups
 * and write them back to disk, also update cs_total on disk
 */
static void ufs_put_super_internal(struct super_block *sb)
{}

static int ufs_sync_fs(struct super_block *sb, int wait)
{}

static void delayed_sync_fs(struct work_struct *work)
{}

void ufs_mark_sb_dirty(struct super_block *sb)
{}

static void ufs_put_super(struct super_block *sb)
{}

static u64 ufs_max_bytes(struct super_block *sb)
{}

static int ufs_fill_super(struct super_block *sb, void *data, int silent)
{}

static int ufs_remount (struct super_block *sb, int *mount_flags, char *data)
{}

static int ufs_show_options(struct seq_file *seq, struct dentry *root)
{}

static int ufs_statfs(struct dentry *dentry, struct kstatfs *buf)
{}

static struct kmem_cache * ufs_inode_cachep;

static struct inode *ufs_alloc_inode(struct super_block *sb)
{}

static void ufs_free_in_core_inode(struct inode *inode)
{}

static void init_once(void *foo)
{}

static int __init init_inodecache(void)
{}

static void destroy_inodecache(void)
{}

static const struct super_operations ufs_super_ops =;

static struct dentry *ufs_mount(struct file_system_type *fs_type,
	int flags, const char *dev_name, void *data)
{}

static struct file_system_type ufs_fs_type =;
MODULE_ALIAS_FS();

static int __init init_ufs_fs(void)
{}

static void __exit exit_ufs_fs(void)
{}

module_init()
module_exit()
MODULE_DESCRIPTION();
MODULE_LICENSE();