diff options
| -rw-r--r-- | drivers/staging/pohmelfs/inode.c | 4 | ||||
| -rw-r--r-- | drivers/staging/pohmelfs/net.c | 56 | ||||
| -rw-r--r-- | drivers/staging/pohmelfs/netfs.h | 6 | ||||
| -rw-r--r-- | drivers/staging/pohmelfs/trans.c | 2 |
4 files changed, 2 insertions, 66 deletions
diff --git a/drivers/staging/pohmelfs/inode.c b/drivers/staging/pohmelfs/inode.c index af99f6620b7..a12fcc6c72b 100644 --- a/drivers/staging/pohmelfs/inode.c +++ b/drivers/staging/pohmelfs/inode.c | |||
| @@ -1343,8 +1343,6 @@ static void pohmelfs_put_super(struct super_block *sb) | |||
| 1343 | 1343 | ||
| 1344 | kfree(psb); | 1344 | kfree(psb); |
| 1345 | sb->s_fs_info = NULL; | 1345 | sb->s_fs_info = NULL; |
| 1346 | |||
| 1347 | pohmelfs_ftrans_exit(); | ||
| 1348 | } | 1346 | } |
| 1349 | 1347 | ||
| 1350 | static int pohmelfs_statfs(struct dentry *dentry, struct kstatfs *buf) | 1348 | static int pohmelfs_statfs(struct dentry *dentry, struct kstatfs *buf) |
| @@ -1783,8 +1781,6 @@ static int pohmelfs_fill_super(struct super_block *sb, void *data, int silent) | |||
| 1783 | struct pohmelfs_inode *npi; | 1781 | struct pohmelfs_inode *npi; |
| 1784 | struct qstr str; | 1782 | struct qstr str; |
| 1785 | 1783 | ||
| 1786 | pohmelfs_ftrans_init(); | ||
| 1787 | |||
| 1788 | psb = kzalloc(sizeof(struct pohmelfs_sb), GFP_KERNEL); | 1784 | psb = kzalloc(sizeof(struct pohmelfs_sb), GFP_KERNEL); |
| 1789 | if (!psb) | 1785 | if (!psb) |
| 1790 | goto err_out_exit; | 1786 | goto err_out_exit; |
diff --git a/drivers/staging/pohmelfs/net.c b/drivers/staging/pohmelfs/net.c index 93a5921c36f..11ecac026ca 100644 --- a/drivers/staging/pohmelfs/net.c +++ b/drivers/staging/pohmelfs/net.c | |||
| @@ -26,55 +26,6 @@ | |||
| 26 | 26 | ||
| 27 | #include "netfs.h" | 27 | #include "netfs.h" |
| 28 | 28 | ||
| 29 | static int pohmelfs_ftrans_size = 10240; | ||
| 30 | static u32 *pohmelfs_ftrans; | ||
| 31 | |||
| 32 | int pohmelfs_ftrans_init(void) | ||
| 33 | { | ||
| 34 | pohmelfs_ftrans = vmalloc(pohmelfs_ftrans_size * 4); | ||
| 35 | if (!pohmelfs_ftrans) | ||
| 36 | return -ENOMEM; | ||
| 37 | |||
| 38 | return 0; | ||
| 39 | } | ||
| 40 | |||
| 41 | void pohmelfs_ftrans_exit(void) | ||
| 42 | { | ||
| 43 | vfree(pohmelfs_ftrans); | ||
| 44 | } | ||
| 45 | |||
| 46 | void pohmelfs_ftrans_clean(u64 id) | ||
| 47 | { | ||
| 48 | if (pohmelfs_ftrans) { | ||
| 49 | u32 i = id & 0xffffffff; | ||
| 50 | int idx = i % pohmelfs_ftrans_size; | ||
| 51 | |||
| 52 | pohmelfs_ftrans[idx] = 0; | ||
| 53 | } | ||
| 54 | } | ||
| 55 | |||
| 56 | void pohmelfs_ftrans_update(u64 id) | ||
| 57 | { | ||
| 58 | if (pohmelfs_ftrans) { | ||
| 59 | u32 i = id & 0xffffffff; | ||
| 60 | int idx = i % pohmelfs_ftrans_size; | ||
| 61 | |||
| 62 | pohmelfs_ftrans[idx] = i; | ||
| 63 | } | ||
| 64 | } | ||
| 65 | |||
| 66 | int pohmelfs_ftrans_check(u64 id) | ||
| 67 | { | ||
| 68 | if (pohmelfs_ftrans) { | ||
| 69 | u32 i = id & 0xffffffff; | ||
| 70 | int idx = i % pohmelfs_ftrans_size; | ||
| 71 | |||
| 72 | return (pohmelfs_ftrans[idx] == i); | ||
| 73 | } | ||
| 74 | |||
| 75 | return -1; | ||
| 76 | } | ||
| 77 | |||
| 78 | /* | 29 | /* |
| 79 | * Async machinery lives here. | 30 | * Async machinery lives here. |
| 80 | * All commands being sent to server do _not_ require sync reply, | 31 | * All commands being sent to server do _not_ require sync reply, |
| @@ -654,15 +605,12 @@ static int pohmelfs_transaction_response(struct netfs_state *st) | |||
| 654 | if (dst) { | 605 | if (dst) { |
| 655 | netfs_trans_remove_nolock(dst, st); | 606 | netfs_trans_remove_nolock(dst, st); |
| 656 | t = dst->trans; | 607 | t = dst->trans; |
| 657 | |||
| 658 | pohmelfs_ftrans_update(cmd->start); | ||
| 659 | } | 608 | } |
| 660 | mutex_unlock(&st->trans_lock); | 609 | mutex_unlock(&st->trans_lock); |
| 661 | 610 | ||
| 662 | if (!t) { | 611 | if (!t) { |
| 663 | int check = pohmelfs_ftrans_check(cmd->start); | 612 | printk("%s: failed to find transaction: start: %llu: id: %llu, size: %u, ext: %u.\n", |
| 664 | printk("%s: failed to find transaction: start: %llu: id: %llu, size: %u, ext: %u, double: %d.\n", | 613 | __func__, cmd->start, cmd->id, cmd->size, cmd->ext); |
| 665 | __func__, cmd->start, cmd->id, cmd->size, cmd->ext, check); | ||
| 666 | err = -EINVAL; | 614 | err = -EINVAL; |
| 667 | goto out; | 615 | goto out; |
| 668 | } | 616 | } |
diff --git a/drivers/staging/pohmelfs/netfs.h b/drivers/staging/pohmelfs/netfs.h index 2ff21ae5bb1..59f81cbf388 100644 --- a/drivers/staging/pohmelfs/netfs.h +++ b/drivers/staging/pohmelfs/netfs.h | |||
| @@ -921,12 +921,6 @@ static inline void pohmelfs_mcache_put(struct pohmelfs_sb *psb, | |||
| 921 | pohmelfs_mcache_free(psb, m); | 921 | pohmelfs_mcache_free(psb, m); |
| 922 | } | 922 | } |
| 923 | 923 | ||
| 924 | int pohmelfs_ftrans_init(void); | ||
| 925 | void pohmelfs_ftrans_exit(void); | ||
| 926 | void pohmelfs_ftrans_update(u64 id); | ||
| 927 | int pohmelfs_ftrans_check(u64 id); | ||
| 928 | void pohmelfs_ftrans_clean(u64 id); | ||
| 929 | |||
| 930 | #endif /* __KERNEL__*/ | 924 | #endif /* __KERNEL__*/ |
| 931 | 925 | ||
| 932 | #endif /* __NETFS_H */ | 926 | #endif /* __NETFS_H */ |
diff --git a/drivers/staging/pohmelfs/trans.c b/drivers/staging/pohmelfs/trans.c index bcb59425a21..b89f9f36b35 100644 --- a/drivers/staging/pohmelfs/trans.c +++ b/drivers/staging/pohmelfs/trans.c | |||
| @@ -501,8 +501,6 @@ int netfs_trans_finish(struct netfs_trans *t, struct pohmelfs_sb *psb) | |||
| 501 | 501 | ||
| 502 | t->gen = atomic_inc_return(&psb->trans_gen); | 502 | t->gen = atomic_inc_return(&psb->trans_gen); |
| 503 | 503 | ||
| 504 | pohmelfs_ftrans_clean(t->gen); | ||
| 505 | |||
| 506 | cmd->size = t->iovec.iov_len - sizeof(struct netfs_cmd) + | 504 | cmd->size = t->iovec.iov_len - sizeof(struct netfs_cmd) + |
| 507 | t->attached_size + t->attached_pages * sizeof(struct netfs_cmd); | 505 | t->attached_size + t->attached_pages * sizeof(struct netfs_cmd); |
| 508 | cmd->cmd = NETFS_TRANS; | 506 | cmd->cmd = NETFS_TRANS; |
