aboutsummaryrefslogtreecommitdiffstats
path: root/fs/logfs/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/logfs/dir.c')
-rw-r--r--fs/logfs/dir.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/fs/logfs/dir.c b/fs/logfs/dir.c
index 9777eb5b5522..1afae26cf236 100644
--- a/fs/logfs/dir.c
+++ b/fs/logfs/dir.c
@@ -92,7 +92,7 @@ static int beyond_eof(struct inode *inode, loff_t bix)
92 * so short names (len <= 9) don't even occupy the complete 32bit name 92 * so short names (len <= 9) don't even occupy the complete 32bit name
93 * space. A prime >256 ensures short names quickly spread the 32bit 93 * space. A prime >256 ensures short names quickly spread the 32bit
94 * name space. Add about 26 for the estimated amount of information 94 * name space. Add about 26 for the estimated amount of information
95 * of each character and pick a prime nearby, preferrably a bit-sparse 95 * of each character and pick a prime nearby, preferably a bit-sparse
96 * one. 96 * one.
97 */ 97 */
98static u32 hash_32(const char *s, int len, u32 seed) 98static u32 hash_32(const char *s, int len, u32 seed)
@@ -555,11 +555,6 @@ static int logfs_symlink(struct inode *dir, struct dentry *dentry,
555 return __logfs_create(dir, dentry, inode, target, destlen); 555 return __logfs_create(dir, dentry, inode, target, destlen);
556} 556}
557 557
558static int logfs_permission(struct inode *inode, int mask)
559{
560 return generic_permission(inode, mask, NULL);
561}
562
563static int logfs_link(struct dentry *old_dentry, struct inode *dir, 558static int logfs_link(struct dentry *old_dentry, struct inode *dir,
564 struct dentry *dentry) 559 struct dentry *dentry)
565{ 560{
@@ -569,7 +564,7 @@ static int logfs_link(struct dentry *old_dentry, struct inode *dir,
569 return -EMLINK; 564 return -EMLINK;
570 565
571 inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; 566 inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME;
572 atomic_inc(&inode->i_count); 567 ihold(inode);
573 inode->i_nlink++; 568 inode->i_nlink++;
574 mark_inode_dirty_sync(inode); 569 mark_inode_dirty_sync(inode);
575 570
@@ -818,7 +813,6 @@ const struct inode_operations logfs_dir_iops = {
818 .mknod = logfs_mknod, 813 .mknod = logfs_mknod,
819 .rename = logfs_rename, 814 .rename = logfs_rename,
820 .rmdir = logfs_rmdir, 815 .rmdir = logfs_rmdir,
821 .permission = logfs_permission,
822 .symlink = logfs_symlink, 816 .symlink = logfs_symlink,
823 .unlink = logfs_unlink, 817 .unlink = logfs_unlink,
824}; 818};
@@ -827,4 +821,5 @@ const struct file_operations logfs_dir_fops = {
827 .unlocked_ioctl = logfs_ioctl, 821 .unlocked_ioctl = logfs_ioctl,
828 .readdir = logfs_readdir, 822 .readdir = logfs_readdir,
829 .read = generic_read_dir, 823 .read = generic_read_dir,
824 .llseek = default_llseek,
830}; 825};