[linux-cifs-client] [PATCH] cifs: Detect errors in cifs_writepages when called from pdflush

Peter Schwenke peter at bluetoad.com.au
Mon Apr 20 07:35:14 GMT 2009


Jeff Layton wrote:
> On Fri, 17 Apr 2009 22:44:38 +1000
> Peter Schwenke <peter at bluetoad.com.au> wrote:
> 
>> @@ -1374,6 +1374,17 @@ retry:
>>  						set_bit(AS_ENOSPC, &mapping->flags);
>>  					else
>>  						set_bit(AS_EIO, &mapping->flags);
>> +					/*
>> +					 * The return code isn't checked in the
>> +					 * case of cifs_writepages being
>> +					 * invoked as a result of pdflush.
>> +					 * See generic_sync_sb_inodes()
>> +					 */
>> +					if (current_is_pdflush())
>> +						if (rc == -ENOSPC)
>> +							CIFS_I(mapping->host)->write_behind_rc =  rc;
>> +						else
>> +							CIFS_I(mapping->host)->write_behind_rc =  -EIO;
>>  				} else {
>>  					cifs_stats_bytes_written(cifs_sb->tcon,
>>  								 bytes_written);
> 
> Looks reasonable, but doesn't the compiler complain about ambiguous
> else's here? You might need to add some curly braces here. Also, we should
> already have a 'cifsi' variable in that function that's usable instead
> of having to call CIFS_I. 
> 

Oops. Sorry about that, I missed the warning.

I've add the braces. There wasn't a variable like that available, so
I've added one named cifs_inode (looked at one of Steve's latest patches
and through the code to decide on a naming convention.  I ummed and
aaghed about using the variable in another spot where CIFS_I was used
and went with it.

Coming in next message.

-- 
                                                              Regards
                                                              ...Peter


More information about the linux-cifs-client mailing list