lkml.org 
[lkml]   [2010]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 37/52] quota: Fix dquot_transfer for filesystems different from ext4
    Date
    From: Jan Kara <jack@suse.cz>

    commit 05b5d898235401c489c68e1f3bc5706a29ad5713 upstream.

    Commit fd8fbfc1 modified the way we find amount of reserved space
    belonging to an inode. The amount of reserved space is checked
    from dquot_transfer and thus inode_reserved_space gets called
    even for filesystems that don't provide get_reserved_space callback
    which results in a BUG.

    Fix the problem by checking get_reserved_space callback and return 0 if
    the filesystem does not provide it.

    CC: Dmitry Monakhov <dmonakhov@openvz.org>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    fs/quota/dquot.c | 3 +++
    1 files changed, 3 insertions(+), 0 deletions(-)

    diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
    index c4d07a8..2534987 100644
    --- a/fs/quota/dquot.c
    +++ b/fs/quota/dquot.c
    @@ -1425,6 +1425,9 @@ static void inode_sub_rsv_space(struct inode *inode, qsize_t number)
    static qsize_t inode_get_rsv_space(struct inode *inode)
    {
    qsize_t ret;
    +
    + if (!inode->i_sb->dq_op->get_reserved_space)
    + return 0;
    spin_lock(&inode->i_lock);
    ret = *inode_reserved_space(inode);
    spin_unlock(&inode->i_lock);
    --
    1.6.6


    \
     
     \ /
      Last update: 2010-01-14 23:37    [W:0.028 / U:2.620 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site