linux/fs/ext2/namei.c

// SPDX-License-Identifier: GPL-2.0
/*
 * linux/fs/ext2/namei.c
 *
 * Rewrite to pagecache. Almost all code had been changed, so blame me
 * if the things go wrong. Please, send bug reports to
 * [email protected]
 *
 * Stuff here is basically a glue between the VFS and generic UNIXish
 * filesystem that keeps everything in pagecache. All knowledge of the
 * directory layout is in fs/ext2/dir.c - it turned out to be easily separatable
 * and it's easier to debug that way. In principle we might want to
 * generalize that a bit and turn it into a library. Or not.
 *
 * The only non-static object here is ext2_dir_inode_operations.
 *
 * TODO: get rid of kmap() use, add readahead.
 *
 * 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/namei.c
 *
 *  Copyright (C) 1991, 1992  Linus Torvalds
 *
 *  Big-endian to little-endian byte-swapping/bitmaps by
 *        David S. Miller ([email protected]), 1995
 */

#include <linux/pagemap.h>
#include <linux/quotaops.h>
#include "ext2.h"
#include "xattr.h"
#include "acl.h"

static inline int ext2_add_nondir(struct dentry *dentry, struct inode *inode)
{}

/*
 * Methods themselves.
 */

static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags)
{}

struct dentry *ext2_get_parent(struct dentry *child)
{} 

/*
 * By the time this is called, we already have created
 * the directory cache entry for the new file, but it
 * is so far negative - it has no inode.
 *
 * If the create succeeds, we fill in the inode information
 * with d_instantiate(). 
 */
static int ext2_create (struct mnt_idmap * idmap,
			struct inode * dir, struct dentry * dentry,
			umode_t mode, bool excl)
{}

static int ext2_tmpfile(struct mnt_idmap *idmap, struct inode *dir,
			struct file *file, umode_t mode)
{}

static int ext2_mknod (struct mnt_idmap * idmap, struct inode * dir,
	struct dentry *dentry, umode_t mode, dev_t rdev)
{}

static int ext2_symlink (struct mnt_idmap * idmap, struct inode * dir,
	struct dentry * dentry, const char * symname)
{}

static int ext2_link (struct dentry * old_dentry, struct inode * dir,
	struct dentry *dentry)
{}

static int ext2_mkdir(struct mnt_idmap * idmap,
	struct inode * dir, struct dentry * dentry, umode_t mode)
{}

static int ext2_unlink(struct inode *dir, struct dentry *dentry)
{}

static int ext2_rmdir (struct inode * dir, struct dentry *dentry)
{}

static int ext2_rename (struct mnt_idmap * idmap,
			struct inode * old_dir, struct dentry * old_dentry,
			struct inode * new_dir, struct dentry * new_dentry,
			unsigned int flags)
{}

const struct inode_operations ext2_dir_inode_operations =;

const struct inode_operations ext2_special_inode_operations =;