[linux-cifs-client] [PATCH] cifs: cleanup initialization of bytes_written
Suresh Jayaraman
sjayaraman at suse.de
Tue Mar 30 06:39:21 MDT 2010
On 03/30/2010 05:12 PM, Jeff Layton wrote:
> On Tue, 30 Mar 2010 14:53:25 +0530
> Suresh Jayaraman <sjayaraman at suse.de> wrote:
>
>> Initialize bytes_written at the callers uniformly so that CIFSSMBWrite2() and
>> CIFSSMBWrite() do not have to worry about it.
>>
>> Signed-off-by: Suresh Jayaraman <sjayaraman at suse.de>
>> ---
>> fs/cifs/cifssmb.c | 3 ---
>> fs/cifs/dir.c | 2 +-
>> fs/cifs/file.c | 2 +-
>> fs/cifs/inode.c | 4 ++--
>> 4 files changed, 4 insertions(+), 7 deletions(-)
>>
>> diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
>> index 7cc7f83..bbf2afa 100644
>> --- a/fs/cifs/cifssmb.c
>> +++ b/fs/cifs/cifssmb.c
>> @@ -1512,7 +1512,6 @@ CIFSSMBWrite(const int xid, struct cifsTconInfo *tcon,
>> cifs_stats_inc(&tcon->num_writes);
>> if (rc) {
>> cFYI(1, ("Send error in write = %d", rc));
>> - *nbytes = 0;
>> } else {
>> *nbytes = le16_to_cpu(pSMBr->CountHigh);
>> *nbytes = (*nbytes) << 16;
>> @@ -1539,8 +1538,6 @@ CIFSSMBWrite2(const int xid, struct cifsTconInfo *tcon,
>> int smb_hdr_len;
>> int resp_buf_type = 0;
>>
>> - *nbytes = 0;
>> -
>> cFYI(1, ("write2 at %lld %d bytes", (long long)offset, count));
>>
>> if (tcon->ses->capabilities & CAP_LARGE_FILES) {
>> diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
>> index e9f7ecc..6d4e7e9 100644
>> --- a/fs/cifs/dir.c
>> +++ b/fs/cifs/dir.c
>> @@ -560,7 +560,7 @@ int cifs_mknod(struct inode *inode, struct dentry *direntry, int mode,
>> /* BB Do not bother to decode buf since no
>> local inode yet to put timestamps in,
>> but we can reuse it safely */
>> - unsigned int bytes_written;
>> + unsigned int bytes_written = 0;
>> struct win_dev *pdev;
>> pdev = (struct win_dev *)buf;
>> if (S_ISCHR(mode)) {
>> diff --git a/fs/cifs/file.c b/fs/cifs/file.c
>> index ca2ba7a..6af4fbd 100644
>> --- a/fs/cifs/file.c
>> +++ b/fs/cifs/file.c
>> @@ -1341,7 +1341,7 @@ static int cifs_writepages(struct address_space *mapping,
>> {
>> struct backing_dev_info *bdi = mapping->backing_dev_info;
>> unsigned int bytes_to_write;
>> - unsigned int bytes_written;
>> + unsigned int bytes_written = 0;
>> struct cifs_sb_info *cifs_sb;
>> int done = 0;
>> pgoff_t end;
>> diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
>> index 723daac..af0b0d4 100644
>> --- a/fs/cifs/inode.c
>> +++ b/fs/cifs/inode.c
>> @@ -1674,7 +1674,7 @@ cifs_set_file_size(struct inode *inode, struct iattr *attrs,
>> cifsFileInfo_put(open_file);
>> cFYI(1, ("SetFSize for attrs rc = %d", rc));
>> if ((rc == -EINVAL) || (rc == -EOPNOTSUPP)) {
>> - unsigned int bytes_written;
>> + unsigned int bytes_written = 0;
>> rc = CIFSSMBWrite(xid, pTcon, nfid, 0, attrs->ia_size,
>> &bytes_written, NULL, NULL, 1);
>> cFYI(1, ("Wrt seteof rc %d", rc));
>> @@ -1703,7 +1703,7 @@ cifs_set_file_size(struct inode *inode, struct iattr *attrs,
>> cifs_sb->mnt_cifs_flags &
>> CIFS_MOUNT_MAP_SPECIAL_CHR);
>> if (rc == 0) {
>> - unsigned int bytes_written;
>> + unsigned int bytes_written = 0;
>> rc = CIFSSMBWrite(xid, pTcon, netfid, 0,
>> attrs->ia_size,
>> &bytes_written, NULL,
>
> Would it be better to just zero out *nbytes at the beginning of
Might be. I don't have any strong preference to either approach but I
think there should be uniformity and we should remove redundant
initializations.
> CIFSSMBWrite like Write2 does? Whatever value is in that field should
> always be overwritten before those functions return, so I'm not sure I
But my patch fixed the callers because none of these callers assign any
value to bytes_written. The just pass address of bytes_written to
CIFSSMBWRITE calls.
> see the value in pushing the initialization of it out to the callers.
>
I'll resend this patch if that seems a better approach.
Thanks,
--
Suresh Jayaraman
More information about the linux-cifs-client
mailing list