2014-04-11 09:59:19

by Gu Zheng

[permalink] [raw]
Subject: [PATCH 2/7] f2fs: remove the unuseful "issue_tail" list

With the issue_list and dispatch_list, we can handle flush_merge
already, so remove the useless "issue_tail" list.

Signed-off-by: Gu Zheng <[email protected]>
---
fs/f2fs/f2fs.h | 1 -
fs/f2fs/segment.c | 5 ++---
2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 2ecac83..90109fa 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -358,7 +358,6 @@ struct f2fs_sm_info {
struct flush_cmd *issue_list; /* list for command issue */
struct flush_cmd *dispatch_list; /* list for command dispatch */
spinlock_t issue_lock; /* for issue list lock */
- struct flush_cmd *issue_tail; /* list tail of issue list */
};

/*
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 524b7ed..8a6fe2a 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -209,7 +209,7 @@ repeat:
spin_lock(&sm_i->issue_lock);
if (sm_i->issue_list) {
sm_i->dispatch_list = sm_i->issue_list;
- sm_i->issue_list = sm_i->issue_tail = NULL;
+ sm_i->issue_list = NULL;
}
spin_unlock(&sm_i->issue_lock);

@@ -250,10 +250,9 @@ int f2fs_issue_flush(struct f2fs_sb_info *sbi)

spin_lock(&sm_i->issue_lock);
if (sm_i->issue_list)
- sm_i->issue_tail->next = cmd;
+ sm_i->issue_list->next = cmd;
else
sm_i->issue_list = cmd;
- sm_i->issue_tail = cmd;
spin_unlock(&sm_i->issue_lock);

if (!sm_i->dispatch_list)
--
1.7.7


2014-04-14 01:22:11

by Gu Zheng

[permalink] [raw]
Subject: Re: [PATCH 2/7] f2fs: remove the unuseful "issue_tail" list

Hi All,
There seems to be a mistake in this patch, please ignore it.
I'll send a reworked one later.

Regards,
Gu
On 04/11/2014 05:49 PM, Gu Zheng wrote:

> With the issue_list and dispatch_list, we can handle flush_merge
> already, so remove the useless "issue_tail" list.
>
> Signed-off-by: Gu Zheng <[email protected]>
> ---
> fs/f2fs/f2fs.h | 1 -
> fs/f2fs/segment.c | 5 ++---
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
> index 2ecac83..90109fa 100644
> --- a/fs/f2fs/f2fs.h
> +++ b/fs/f2fs/f2fs.h
> @@ -358,7 +358,6 @@ struct f2fs_sm_info {
> struct flush_cmd *issue_list; /* list for command issue */
> struct flush_cmd *dispatch_list; /* list for command dispatch */
> spinlock_t issue_lock; /* for issue list lock */
> - struct flush_cmd *issue_tail; /* list tail of issue list */
> };
>
> /*
> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> index 524b7ed..8a6fe2a 100644
> --- a/fs/f2fs/segment.c
> +++ b/fs/f2fs/segment.c
> @@ -209,7 +209,7 @@ repeat:
> spin_lock(&sm_i->issue_lock);
> if (sm_i->issue_list) {
> sm_i->dispatch_list = sm_i->issue_list;
> - sm_i->issue_list = sm_i->issue_tail = NULL;
> + sm_i->issue_list = NULL;
> }
> spin_unlock(&sm_i->issue_lock);
>
> @@ -250,10 +250,9 @@ int f2fs_issue_flush(struct f2fs_sb_info *sbi)
>
> spin_lock(&sm_i->issue_lock);
> if (sm_i->issue_list)
> - sm_i->issue_tail->next = cmd;
> + sm_i->issue_list->next = cmd;
> else
> sm_i->issue_list = cmd;
> - sm_i->issue_tail = cmd;
> spin_unlock(&sm_i->issue_lock);
>
> if (!sm_i->dispatch_list)