Re: SQUASHME pnfs-submit: write to MDS on DS commit verifier mismatch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks Andy.  I've squashed this into my just submitted patchset.

Fred

On Thu, Jun 10, 2010 at 5:26 PM,  <andros@xxxxxxxxxx> wrote:
> From: Andy Adamson <andros@xxxxxxxxxx>
>
> Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
> ---
>  fs/nfs/write.c |   18 +++++++++++++-----
>  1 files changed, 13 insertions(+), 5 deletions(-)
>
> diff --git a/fs/nfs/write.c b/fs/nfs/write.c
> index 482d41e..a47f03d 100644
> --- a/fs/nfs/write.c
> +++ b/fs/nfs/write.c
> @@ -422,6 +422,17 @@ static void nfs_inode_remove_request(struct nfs_page *req)
>        nfs_clear_request(req);
>        nfs_release_request(req);
>  }
> +static void
> +nfs_mark_request_nopnfs(struct nfs_page *req)
> +{
> +       struct pnfs_layout_segment *lseg = req->wb_lseg;
> +
> +       if (req->wb_lseg == NULL)
> +               return;
> +       req->wb_lseg = NULL;
> +       put_lseg(lseg);
> +       dprintk(" retry through MDS\n");
> +}
>
>  static void
>  nfs_mark_request_dirty(struct nfs_page *req)
> @@ -1463,11 +1474,7 @@ static void nfs_commit_release(void *calldata)
>                        (long long)req_offset(req));
>                if (status < 0) {
>                        if (req->wb_lseg) {
> -                               struct pnfs_layout_segment *lseg = req->wb_lseg;
> -
> -                               req->wb_lseg = NULL;
> -                               put_lseg(lseg);
> -                               dprintk(" retry through MDS\n");
> +                               nfs_mark_request_nopnfs(req);
>                                nfs_mark_request_dirty(req);
>                                goto next;
>                        }
> @@ -1487,6 +1494,7 @@ static void nfs_commit_release(void *calldata)
>                }
>                /* We have a mismatch. Write the page again */
>                dprintk(" mismatch\n");
> +               nfs_mark_request_nopnfs(req);
>                nfs_mark_request_dirty(req);
>        next:
>                nfs_clear_page_tag_locked(req);
> --
> 1.6.6
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux