diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-12-12 11:53:43 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-12-12 11:53:43 +0100 |
commit | e18d7af85296cb6999aae171e8a9f8612bea5ae0 (patch) | |
tree | 97a675ecc17bef2f710c50f5ea2a480df0e362c0 /fs/file_table.c | |
parent | 3555105333ae55414d0fe051557bd7dc590f5255 (diff) | |
parent | 8b1fae4e4200388b64dd88065639413cb3f1051c (diff) |
Merge commit 'v2.6.28-rc8' into x86/mm
Diffstat (limited to 'fs/file_table.c')
-rw-r--r-- | fs/file_table.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/file_table.c b/fs/file_table.c index f45a4493f9e..5ad0eca6eea 100644 --- a/fs/file_table.c +++ b/fs/file_table.c @@ -161,7 +161,7 @@ EXPORT_SYMBOL(get_empty_filp); * code should be moved into this function. */ struct file *alloc_file(struct vfsmount *mnt, struct dentry *dentry, - mode_t mode, const struct file_operations *fop) + fmode_t mode, const struct file_operations *fop) { struct file *file; struct path; @@ -193,7 +193,7 @@ EXPORT_SYMBOL(alloc_file); * of this should be moving to alloc_file(). */ int init_file(struct file *file, struct vfsmount *mnt, struct dentry *dentry, - mode_t mode, const struct file_operations *fop) + fmode_t mode, const struct file_operations *fop) { int error = 0; file->f_path.dentry = dentry; @@ -269,6 +269,10 @@ void __fput(struct file *file) eventpoll_release(file); locks_remove_flock(file); + if (unlikely(file->f_flags & FASYNC)) { + if (file->f_op && file->f_op->fasync) + file->f_op->fasync(-1, file, 0); + } if (file->f_op && file->f_op->release) file->f_op->release(inode, file); security_file_free(file); |