gfs2: allow quota_check and inplace_reserve to return available blocks
authorAbhi Das <adas@redhat.com>
Wed, 18 Mar 2015 17:04:37 +0000 (12:04 -0500)
committerBob Peterson <rpeterso@redhat.com>
Wed, 18 Mar 2015 17:47:10 +0000 (12:47 -0500)
commit25435e5ed611f310dda889940cbc4c45b3ecd9ec
tree9610acd909a2a48a01f092a58c163af4cac1aad2
parentb8fbf471edb3dbf441716fd2a52a7ca76c381381
gfs2: allow quota_check and inplace_reserve to return available blocks

struct gfs2_alloc_parms is passed to gfs2_quota_check() and
gfs2_inplace_reserve() with ap->target containing the number of
blocks being requested for allocation in the current operation.

We add a new field to struct gfs2_alloc_parms called 'allowed'.
gfs2_quota_check() and gfs2_inplace_reserve() return the max
blocks allowed by quota and the max blocks allowed by the chosen
rgrp respectively in 'allowed'.

A new field 'min_target', when non-zero, tells gfs2_quota_check()
and gfs2_inplace_reserve() to not return -EDQUOT/-ENOSPC when
there are atleast 'min_target' blocks allowable/available. The
assumption is that the caller is ok with just 'min_target' blocks
and will likely proceed with allocating them.

Signed-off-by: Abhi Das <adas@redhat.com>
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Acked-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/incore.h
fs/gfs2/quota.c
fs/gfs2/rgrp.c
fs/gfs2/rgrp.h