diff options
author | Anton Altaparmakov <aia21@cantab.net> | 2007-01-18 04:42:48 -0500 |
---|---|---|
committer | Anton Altaparmakov <aia21@cantab.net> | 2007-01-18 04:42:48 -0500 |
commit | 8331191e56802f0155772a3d56bc2a750acc38e1 (patch) | |
tree | 556f3b8f395d7c66b9eca9d35309644b9f1c027d /fs/ntfs/super.c | |
parent | a8b3485287731978899ced11f24628c927890e78 (diff) |
NTFS: 2.1.28 - Fix deadlock reported by Sergey Vlasov due to ntfs_put_inode().
- Fix deadlock in fs/ntfs/inode.c::ntfs_put_inode(). Thanks to Sergey
Vlasov for the report and detailed analysis of the deadlock. The fix
involved getting rid of ntfs_put_inode() altogether and hence NTFS no
longer has a ->put_inode super operation.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
Diffstat (limited to 'fs/ntfs/super.c')
-rw-r--r-- | fs/ntfs/super.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c index 03a391ac7145..babf94d90def 100644 --- a/fs/ntfs/super.c +++ b/fs/ntfs/super.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * super.c - NTFS kernel super block handling. Part of the Linux-NTFS project. | 2 | * super.c - NTFS kernel super block handling. Part of the Linux-NTFS project. |
3 | * | 3 | * |
4 | * Copyright (c) 2001-2006 Anton Altaparmakov | 4 | * Copyright (c) 2001-2007 Anton Altaparmakov |
5 | * Copyright (c) 2001,2002 Richard Russon | 5 | * Copyright (c) 2001,2002 Richard Russon |
6 | * | 6 | * |
7 | * This program/include file is free software; you can redistribute it and/or | 7 | * This program/include file is free software; you can redistribute it and/or |
@@ -2702,9 +2702,6 @@ static int ntfs_statfs(struct dentry *dentry, struct kstatfs *sfs) | |||
2702 | static struct super_operations ntfs_sops = { | 2702 | static struct super_operations ntfs_sops = { |
2703 | .alloc_inode = ntfs_alloc_big_inode, /* VFS: Allocate new inode. */ | 2703 | .alloc_inode = ntfs_alloc_big_inode, /* VFS: Allocate new inode. */ |
2704 | .destroy_inode = ntfs_destroy_big_inode, /* VFS: Deallocate inode. */ | 2704 | .destroy_inode = ntfs_destroy_big_inode, /* VFS: Deallocate inode. */ |
2705 | .put_inode = ntfs_put_inode, /* VFS: Called just before | ||
2706 | the inode reference count | ||
2707 | is decreased. */ | ||
2708 | #ifdef NTFS_RW | 2705 | #ifdef NTFS_RW |
2709 | //.dirty_inode = NULL, /* VFS: Called from | 2706 | //.dirty_inode = NULL, /* VFS: Called from |
2710 | // __mark_inode_dirty(). */ | 2707 | // __mark_inode_dirty(). */ |
@@ -3261,7 +3258,7 @@ static void __exit exit_ntfs_fs(void) | |||
3261 | } | 3258 | } |
3262 | 3259 | ||
3263 | MODULE_AUTHOR("Anton Altaparmakov <aia21@cantab.net>"); | 3260 | MODULE_AUTHOR("Anton Altaparmakov <aia21@cantab.net>"); |
3264 | MODULE_DESCRIPTION("NTFS 1.2/3.x driver - Copyright (c) 2001-2006 Anton Altaparmakov"); | 3261 | MODULE_DESCRIPTION("NTFS 1.2/3.x driver - Copyright (c) 2001-2007 Anton Altaparmakov"); |
3265 | MODULE_VERSION(NTFS_VERSION); | 3262 | MODULE_VERSION(NTFS_VERSION); |
3266 | MODULE_LICENSE("GPL"); | 3263 | MODULE_LICENSE("GPL"); |
3267 | #ifdef DEBUG | 3264 | #ifdef DEBUG |