lkml.org 
[lkml]   [2010]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/6] Ocfs2: handle hole punching via fallocate properly
    Date
    This patch just makes ocfs2 use its UNRESERVP ioctl when we get the hole punch
    flag in fallocate. I didn't test it, but it seems simple enough. Thanks,

    Signed-off-by: Josef Bacik <josef@redhat.com>
    ---
    fs/ocfs2/file.c | 10 ++++++++--
    1 files changed, 8 insertions(+), 2 deletions(-)

    diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
    index 77b4c04..181ae52 100644
    --- a/fs/ocfs2/file.c
    +++ b/fs/ocfs2/file.c
    @@ -1992,6 +1992,7 @@ static long ocfs2_fallocate(struct inode *inode, int mode, loff_t offset,
    struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
    struct ocfs2_space_resv sr;
    int change_size = 1;
    + int cmd = OCFS2_IOC_RESVSP64;

    if (!ocfs2_writes_unwritten_extents(osb))
    return -EOPNOTSUPP;
    @@ -2002,12 +2003,17 @@ static long ocfs2_fallocate(struct inode *inode, int mode, loff_t offset,
    if (mode & FALLOC_FL_KEEP_SIZE)
    change_size = 0;

    + if (mode & FALLOC_FL_PUNCH_HOLE) {
    + cmd = OCFS2_IOC_UNRESVSP64;
    + change_size = 0;
    + }
    +
    sr.l_whence = 0;
    sr.l_start = (s64)offset;
    sr.l_len = (s64)len;

    - return __ocfs2_change_file_space(NULL, inode, offset,
    - OCFS2_IOC_RESVSP64, &sr, change_size);
    + return __ocfs2_change_file_space(NULL, inode, offset, cmd, &sr,
    + change_size);
    }

    int ocfs2_check_range_for_refcount(struct inode *inode, loff_t pos,
    --
    1.6.6.1


    \
     
     \ /
      Last update: 2010-11-15 18:19    [W:0.029 / U:60.724 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site