summaryrefslogtreecommitdiff
path: root/stun.c
AgeCommit message (Expand)AuthorFilesLines
2013-06-12stun: close socket before returning in error caseDaniel Borkmann1-2/+5
2013-06-12stun: memset saddr before bindingDaniel Borkmann1-1/+2
2013-06-04stun: add header fileDaniel Borkmann1-8/+1
2013-06-04xutils: eliminate xutils, move rest to epoll2Daniel Borkmann1-1/+0
2013-06-04sock: add socket management functionsDaniel Borkmann1-0/+1
2013-03-15all: import netsniff-ng 0.5.8-rc0 sourceDaniel Borkmann1-0/+190
b5a9428687d4b85'>8179c03629de67f515d3ab825b5a9428687d4b85 (patch) tree4c2f102c09531ba272bcec587c754c50f3d54712 /Documentation/input/gamepad.txt parentf55532a0c0b8bb6148f4e07853b876ef73bc69ca (diff)
xfs: remove xfs_fs_evict_inode()
Joe Lawrence reported a list_add corruption with 4.6-rc1 when testing some custom md administration code that made it's own block device nodes for the md array. The simple test loop of: for i in {0..100}; do mknod --mode=0600 $tmp/tmp_node b $MAJOR $MINOR mdadm --detail --export $tmp/tmp_node > /dev/null rm -f $tmp/tmp_node done Would produce this warning in bd_acquire() when mdadm opened the device node: list_add double add: new=ffff88043831c7b8, prev=ffff8804380287d8, next=ffff88043831c7b8. And then produce this from bd_forget from kdevtmpfs evicting a block dev inode: list_del corruption. prev->next should be ffff8800bb83eb10, but was ffff88043831c7b8 This is a regression caused by commit c19b3b05 ("xfs: mode di_mode to vfs inode"). The issue is that xfs_inactive() frees the unlinked inode, and the above commit meant that this freeing zeroed the mode in the struct inode. The problem is that after evict() has called ->evict_inode, it expects the i_mode to be intact so that it can call bd_forget() or cd_forget() to drop the reference to the block device inode attached to the XFS inode. In reality, the only thing we do in xfs_fs_evict_inode() that is not generic is call xfs_inactive(). We can move the xfs_inactive() call to xfs_fs_destroy_inode() without any problems at all, and this will leave the VFS inode intact until it is completely done with it. So, remove xfs_fs_evict_inode(), and do the work it used to do in ->destroy_inode instead. cc: <stable@vger.kernel.org> # 4.6 Reported-by: Joe Lawrence <joe.lawrence@stratus.com> Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'Documentation/input/gamepad.txt')