lkml.org 
[lkml]   [2010]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [C/R v20][PATCH 46/96] c/r: add checkpoint operation for opened files of generic filesystems
    On Wed, Mar 17, 2010 at 03:09:00PM -0600, Andreas Dilger wrote:

    <snip> (already responded to the first part)

    > >static const struct vm_operations_struct nfs_file_vm_ops = {
    > > .fault = filemap_fault,
    > > .page_mkwrite = nfs_vm_page_mkwrite,
    > >+#ifdef CONFIG_CHECKPOINT
    > >+ .checkpoint = filemap_checkpoint,
    > >+#endif
    > >};
    >
    > Why is this one conditional, but the others are not?

    Something like this perhaps (untested, but it should work).

    Move empty filemap_checkpoint definition

    This makes the operation usable in the nfs vm operation structure
    and avoids the extra #ifdef.

    Signed-off-by: Matt Helsley <matthltc@us.ibm.com>
    Cc: Andreas Dilger <adilger@sun.com>

    diff --git a/fs/nfs/file.c b/fs/nfs/file.c
    index 4437ef9..c6f9090 100644
    --- a/fs/nfs/file.c
    +++ b/fs/nfs/file.c
    @@ -578,9 +578,7 @@ out_unlock:
    static const struct vm_operations_struct nfs_file_vm_ops = {
    .fault = filemap_fault,
    .page_mkwrite = nfs_vm_page_mkwrite,
    -#ifdef CONFIG_CHECKPOINT
    .checkpoint = filemap_checkpoint,
    -#endif
    };

    static int nfs_need_sync_write(struct file *filp, struct inode *inode)
    diff --git a/include/linux/mm.h b/include/linux/mm.h
    index 210d8e3..e9d9605 100644
    --- a/include/linux/mm.h
    +++ b/include/linux/mm.h
    @@ -1206,6 +1206,8 @@ extern int filemap_fault(struct vm_area_struct *, struct vm_fault *);
    #ifdef CONFIG_CHECKPOINT
    /* generic vm_area_ops exported for mapped files checkpoint */
    extern int filemap_checkpoint(struct ckpt_ctx *, struct vm_area_struct *);
    +#else /* !CONFIG_CHECKPOINT */
    +#define filemap_checkpoint NULL
    #endif

    /* mm/page-writeback.c */
    diff --git a/mm/filemap.c b/mm/filemap.c
    index 4ea28e6..bc98a15 100644
    --- a/mm/filemap.c
    +++ b/mm/filemap.c
    @@ -1678,8 +1678,6 @@ int filemap_restore(struct ckpt_ctx *ctx,
    }
    return ret;
    }
    -#else /* !CONFIG_CHECKPOINT */
    -#define filemap_checkpoint NULL
    #endif

    const struct vm_operations_struct generic_file_vm_ops = {

    \
     
     \ /
      Last update: 2010-03-18 01:19    [W:0.027 / U:3.700 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site