diff options
Diffstat (limited to 'mm/filemap.c')
| -rw-r--r-- | mm/filemap.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 000a220e2a41..088358c8006b 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -257,9 +257,11 @@ static int filemap_check_errors(struct address_space *mapping)  {  	int ret = 0;  	/* Check for outstanding write errors */ -	if (test_and_clear_bit(AS_ENOSPC, &mapping->flags)) +	if (test_bit(AS_ENOSPC, &mapping->flags) && +	    test_and_clear_bit(AS_ENOSPC, &mapping->flags))  		ret = -ENOSPC; -	if (test_and_clear_bit(AS_EIO, &mapping->flags)) +	if (test_bit(AS_EIO, &mapping->flags) && +	    test_and_clear_bit(AS_EIO, &mapping->flags))  		ret = -EIO;  	return ret;  }  | 
