diff options
author | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
---|---|---|
committer | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
commit | 871480933a1c28f8a9fed4c4d34d06c439a7a422 (patch) | |
tree | 8718f573808810c2a1e8cb8fb6ac469093ca2784 /ANDROID_3.4.5/fs/minix/namei.c | |
parent | 9d40ac5867b9aefe0722bc1f110b965ff294d30d (diff) | |
download | FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.gz FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.bz2 FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.zip |
Moved, renamed, and deleted files
The original directory structure was scattered and unorganized.
Changes are basically to make it look like kernel structure.
Diffstat (limited to 'ANDROID_3.4.5/fs/minix/namei.c')
-rw-r--r-- | ANDROID_3.4.5/fs/minix/namei.c | 257 |
1 files changed, 0 insertions, 257 deletions
diff --git a/ANDROID_3.4.5/fs/minix/namei.c b/ANDROID_3.4.5/fs/minix/namei.c deleted file mode 100644 index 2d0ee178..00000000 --- a/ANDROID_3.4.5/fs/minix/namei.c +++ /dev/null @@ -1,257 +0,0 @@ -/* - * linux/fs/minix/namei.c - * - * Copyright (C) 1991, 1992 Linus Torvalds - */ - -#include "minix.h" - -static int add_nondir(struct dentry *dentry, struct inode *inode) -{ - int err = minix_add_link(dentry, inode); - if (!err) { - d_instantiate(dentry, inode); - return 0; - } - inode_dec_link_count(inode); - iput(inode); - return err; -} - -static struct dentry *minix_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd) -{ - struct inode * inode = NULL; - ino_t ino; - - if (dentry->d_name.len > minix_sb(dir->i_sb)->s_namelen) - return ERR_PTR(-ENAMETOOLONG); - - ino = minix_inode_by_name(dentry); - if (ino) { - inode = minix_iget(dir->i_sb, ino); - if (IS_ERR(inode)) - return ERR_CAST(inode); - } - d_add(dentry, inode); - return NULL; -} - -static int minix_mknod(struct inode * dir, struct dentry *dentry, umode_t mode, dev_t rdev) -{ - int error; - struct inode *inode; - - if (!old_valid_dev(rdev)) - return -EINVAL; - - inode = minix_new_inode(dir, mode, &error); - - if (inode) { - minix_set_inode(inode, rdev); - mark_inode_dirty(inode); - error = add_nondir(dentry, inode); - } - return error; -} - -static int minix_create(struct inode *dir, struct dentry *dentry, umode_t mode, - struct nameidata *nd) -{ - return minix_mknod(dir, dentry, mode, 0); -} - -static int minix_symlink(struct inode * dir, struct dentry *dentry, - const char * symname) -{ - int err = -ENAMETOOLONG; - int i = strlen(symname)+1; - struct inode * inode; - - if (i > dir->i_sb->s_blocksize) - goto out; - - inode = minix_new_inode(dir, S_IFLNK | 0777, &err); - if (!inode) - goto out; - - minix_set_inode(inode, 0); - err = page_symlink(inode, symname, i); - if (err) - goto out_fail; - - err = add_nondir(dentry, inode); -out: - return err; - -out_fail: - inode_dec_link_count(inode); - iput(inode); - goto out; -} - -static int minix_link(struct dentry * old_dentry, struct inode * dir, - struct dentry *dentry) -{ - struct inode *inode = old_dentry->d_inode; - - inode->i_ctime = CURRENT_TIME_SEC; - inode_inc_link_count(inode); - ihold(inode); - return add_nondir(dentry, inode); -} - -static int minix_mkdir(struct inode * dir, struct dentry *dentry, umode_t mode) -{ - struct inode * inode; - int err; - - inode_inc_link_count(dir); - - inode = minix_new_inode(dir, S_IFDIR | mode, &err); - if (!inode) - goto out_dir; - - minix_set_inode(inode, 0); - - inode_inc_link_count(inode); - - err = minix_make_empty(inode, dir); - if (err) - goto out_fail; - - err = minix_add_link(dentry, inode); - if (err) - goto out_fail; - - d_instantiate(dentry, inode); -out: - return err; - -out_fail: - inode_dec_link_count(inode); - inode_dec_link_count(inode); - iput(inode); -out_dir: - inode_dec_link_count(dir); - goto out; -} - -static int minix_unlink(struct inode * dir, struct dentry *dentry) -{ - int err = -ENOENT; - struct inode * inode = dentry->d_inode; - struct page * page; - struct minix_dir_entry * de; - - de = minix_find_entry(dentry, &page); - if (!de) - goto end_unlink; - - err = minix_delete_entry(de, page); - if (err) - goto end_unlink; - - inode->i_ctime = dir->i_ctime; - inode_dec_link_count(inode); -end_unlink: - return err; -} - -static int minix_rmdir(struct inode * dir, struct dentry *dentry) -{ - struct inode * inode = dentry->d_inode; - int err = -ENOTEMPTY; - - if (minix_empty_dir(inode)) { - err = minix_unlink(dir, dentry); - if (!err) { - inode_dec_link_count(dir); - inode_dec_link_count(inode); - } - } - return err; -} - -static int minix_rename(struct inode * old_dir, struct dentry *old_dentry, - struct inode * new_dir, struct dentry *new_dentry) -{ - struct inode * old_inode = old_dentry->d_inode; - struct inode * new_inode = new_dentry->d_inode; - struct page * dir_page = NULL; - struct minix_dir_entry * dir_de = NULL; - struct page * old_page; - struct minix_dir_entry * old_de; - int err = -ENOENT; - - old_de = minix_find_entry(old_dentry, &old_page); - if (!old_de) - goto out; - - if (S_ISDIR(old_inode->i_mode)) { - err = -EIO; - dir_de = minix_dotdot(old_inode, &dir_page); - if (!dir_de) - goto out_old; - } - - if (new_inode) { - struct page * new_page; - struct minix_dir_entry * new_de; - - err = -ENOTEMPTY; - if (dir_de && !minix_empty_dir(new_inode)) - goto out_dir; - - err = -ENOENT; - new_de = minix_find_entry(new_dentry, &new_page); - if (!new_de) - goto out_dir; - minix_set_link(new_de, new_page, old_inode); - new_inode->i_ctime = CURRENT_TIME_SEC; - if (dir_de) - drop_nlink(new_inode); - inode_dec_link_count(new_inode); - } else { - err = minix_add_link(new_dentry, old_inode); - if (err) - goto out_dir; - if (dir_de) - inode_inc_link_count(new_dir); - } - - minix_delete_entry(old_de, old_page); - mark_inode_dirty(old_inode); - - if (dir_de) { - minix_set_link(dir_de, dir_page, new_dir); - inode_dec_link_count(old_dir); - } - return 0; - -out_dir: - if (dir_de) { - kunmap(dir_page); - page_cache_release(dir_page); - } -out_old: - kunmap(old_page); - page_cache_release(old_page); -out: - return err; -} - -/* - * directories can handle most operations... - */ -const struct inode_operations minix_dir_inode_operations = { - .create = minix_create, - .lookup = minix_lookup, - .link = minix_link, - .unlink = minix_unlink, - .symlink = minix_symlink, - .mkdir = minix_mkdir, - .rmdir = minix_rmdir, - .mknod = minix_mknod, - .rename = minix_rename, - .getattr = minix_getattr, -}; |