aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fs.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2008-07-26 00:39:17 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2008-07-26 20:53:40 -0400
commit516e0cc5646f377ab80fcc2ee639892eccb99853 (patch)
treee06296dcedb42dbe397d237887873e70c5823d51 /include/linux/fs.h
parent3c333937ee3be114b181c4861188cfe8f6a59697 (diff)
[PATCH] f_count may wrap around
make it atomic_long_t; while we are at it, get rid of useless checks in affs, hfs and hpfs - ->open() always has it equal to 1, ->release() - to 0. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r--include/linux/fs.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 9d2de4cadabd..7676fa1c20ae 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -795,7 +795,7 @@ struct file {
795#define f_dentry f_path.dentry 795#define f_dentry f_path.dentry
796#define f_vfsmnt f_path.mnt 796#define f_vfsmnt f_path.mnt
797 const struct file_operations *f_op; 797 const struct file_operations *f_op;
798 atomic_t f_count; 798 atomic_long_t f_count;
799 unsigned int f_flags; 799 unsigned int f_flags;
800 mode_t f_mode; 800 mode_t f_mode;
801 loff_t f_pos; 801 loff_t f_pos;
@@ -824,8 +824,8 @@ extern spinlock_t files_lock;
824#define file_list_lock() spin_lock(&files_lock); 824#define file_list_lock() spin_lock(&files_lock);
825#define file_list_unlock() spin_unlock(&files_lock); 825#define file_list_unlock() spin_unlock(&files_lock);
826 826
827#define get_file(x) atomic_inc(&(x)->f_count) 827#define get_file(x) atomic_long_inc(&(x)->f_count)
828#define file_count(x) atomic_read(&(x)->f_count) 828#define file_count(x) atomic_long_read(&(x)->f_count)
829 829
830#ifdef CONFIG_DEBUG_WRITECOUNT 830#ifdef CONFIG_DEBUG_WRITECOUNT
831static inline void file_take_write(struct file *f) 831static inline void file_take_write(struct file *f)