mm/page-writeback.c: dirty limit type should be unsigned long
get_dirty_limits() calls clip_bdi_dirty_limit() and task_dirty_limit() with variable pbdi_dirty as one of the arguments. This variable is an unsigned long * but both functions expect it to be a long *. This causes the following sparse warnings: warning: incorrect type in argument 3 (different signedness) expected long *pbdi_dirty got unsigned long *pbdi_dirty warning: incorrect type in argument 2 (different signedness) expected long *pdirty got unsigned long *pbdi_dirty Fix the warnings by changing the long * to unsigned long * in both functions. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
78dc583d3a
commit
dcf975d585
|
@ -265,18 +265,19 @@ static void bdi_writeout_fraction(struct backing_dev_info *bdi,
|
|||
* This avoids exceeding the total dirty_limit when the floating averages
|
||||
* fluctuate too quickly.
|
||||
*/
|
||||
static void
|
||||
clip_bdi_dirty_limit(struct backing_dev_info *bdi, long dirty, long *pbdi_dirty)
|
||||
static void clip_bdi_dirty_limit(struct backing_dev_info *bdi,
|
||||
unsigned long dirty, unsigned long *pbdi_dirty)
|
||||
{
|
||||
long avail_dirty;
|
||||
unsigned long avail_dirty;
|
||||
|
||||
avail_dirty = dirty -
|
||||
(global_page_state(NR_FILE_DIRTY) +
|
||||
avail_dirty = global_page_state(NR_FILE_DIRTY) +
|
||||
global_page_state(NR_WRITEBACK) +
|
||||
global_page_state(NR_UNSTABLE_NFS) +
|
||||
global_page_state(NR_WRITEBACK_TEMP));
|
||||
global_page_state(NR_WRITEBACK_TEMP);
|
||||
|
||||
if (avail_dirty < 0)
|
||||
if (avail_dirty < dirty)
|
||||
avail_dirty = dirty - avail_dirty;
|
||||
else
|
||||
avail_dirty = 0;
|
||||
|
||||
avail_dirty += bdi_stat(bdi, BDI_RECLAIMABLE) +
|
||||
|
@ -299,10 +300,10 @@ static inline void task_dirties_fraction(struct task_struct *tsk,
|
|||
*
|
||||
* dirty -= (dirty/8) * p_{t}
|
||||
*/
|
||||
static void task_dirty_limit(struct task_struct *tsk, long *pdirty)
|
||||
static void task_dirty_limit(struct task_struct *tsk, unsigned long *pdirty)
|
||||
{
|
||||
long numerator, denominator;
|
||||
long dirty = *pdirty;
|
||||
unsigned long dirty = *pdirty;
|
||||
u64 inv = dirty >> 3;
|
||||
|
||||
task_dirties_fraction(tsk, &numerator, &denominator);
|
||||
|
|
Loading…
Reference in New Issue