aboutsummaryrefslogtreecommitdiffstats
path: root/fs/affs/affs.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/affs/affs.h')
-rw-r--r--fs/affs/affs.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/fs/affs/affs.h b/fs/affs/affs.h
index 1fceb320d2f2..6e216419f340 100644
--- a/fs/affs/affs.h
+++ b/fs/affs/affs.h
@@ -3,6 +3,7 @@
3#include <linux/buffer_head.h> 3#include <linux/buffer_head.h>
4#include <linux/amigaffs.h> 4#include <linux/amigaffs.h>
5#include <linux/mutex.h> 5#include <linux/mutex.h>
6#include <linux/workqueue.h>
6 7
7/* AmigaOS allows file names with up to 30 characters length. 8/* AmigaOS allows file names with up to 30 characters length.
8 * Names longer than that will be silently truncated. If you 9 * Names longer than that will be silently truncated. If you
@@ -100,6 +101,10 @@ struct affs_sb_info {
100 char *s_prefix; /* Prefix for volumes and assigns. */ 101 char *s_prefix; /* Prefix for volumes and assigns. */
101 char s_volume[32]; /* Volume prefix for absolute symlinks. */ 102 char s_volume[32]; /* Volume prefix for absolute symlinks. */
102 spinlock_t symlink_lock; /* protects the previous two */ 103 spinlock_t symlink_lock; /* protects the previous two */
104 struct super_block *sb; /* the VFS superblock object */
105 int work_queued; /* non-zero delayed work is queued */
106 struct delayed_work sb_work; /* superblock flush delayed work */
107 spinlock_t work_lock; /* protects sb_work and work_queued */
103}; 108};
104 109
105#define SF_INTL 0x0001 /* International filesystem. */ 110#define SF_INTL 0x0001 /* International filesystem. */
@@ -120,6 +125,8 @@ static inline struct affs_sb_info *AFFS_SB(struct super_block *sb)
120 return sb->s_fs_info; 125 return sb->s_fs_info;
121} 126}
122 127
128void affs_mark_sb_dirty(struct super_block *sb);
129
123/* amigaffs.c */ 130/* amigaffs.c */
124 131
125extern int affs_insert_hash(struct inode *inode, struct buffer_head *bh); 132extern int affs_insert_hash(struct inode *inode, struct buffer_head *bh);
@@ -146,9 +153,9 @@ extern void affs_free_bitmap(struct super_block *sb);
146/* namei.c */ 153/* namei.c */
147 154
148extern int affs_hash_name(struct super_block *sb, const u8 *name, unsigned int len); 155extern int affs_hash_name(struct super_block *sb, const u8 *name, unsigned int len);
149extern struct dentry *affs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *); 156extern struct dentry *affs_lookup(struct inode *dir, struct dentry *dentry, unsigned int);
150extern int affs_unlink(struct inode *dir, struct dentry *dentry); 157extern int affs_unlink(struct inode *dir, struct dentry *dentry);
151extern int affs_create(struct inode *dir, struct dentry *dentry, umode_t mode, struct nameidata *); 158extern int affs_create(struct inode *dir, struct dentry *dentry, umode_t mode, bool);
152extern int affs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode); 159extern int affs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode);
153extern int affs_rmdir(struct inode *dir, struct dentry *dentry); 160extern int affs_rmdir(struct inode *dir, struct dentry *dentry);
154extern int affs_link(struct dentry *olddentry, struct inode *dir, 161extern int affs_link(struct dentry *olddentry, struct inode *dir,