[CIFS] Add stats for findfirst, findnext, findclose
authorSteve French <sfrench@us.ibm.com>
Thu, 23 Jun 2005 00:13:47 +0000 (17:13 -0700)
committerSteve French <sfrench@hera.kernel.org>
Thu, 23 Jun 2005 00:13:47 +0000 (17:13 -0700)
Signed-off-by: Steve French (sfrench@us.ibm.com)
fs/cifs/cifsglob.h
fs/cifs/cifssmb.c
fs/cifs/readdir.c

index 81babab265e1a31fcad6c97429fadc8d052890fd..4ed9c13fff550447fe56d2db1ffd839626fb241c 100644 (file)
@@ -219,6 +219,9 @@ struct cifsTconInfo {
        atomic_t num_rmdirs;
        atomic_t num_renames;
        atomic_t num_t2renames;
+       atomic_t num_ffirst;
+       atomic_t num_fnext;
+       atomic_t num_fclose;
        __u64    bytes_read;
        __u64    bytes_written;
        spinlock_t stat_lock;
index 3c628bf667a5f010ff17c14d2ffc04f499d80c7d..b31158a2643dad476fef09a9a5e4d94a693487d2 100644 (file)
@@ -2396,7 +2396,9 @@ findUniqueRetry:
        if (rc) {
                cFYI(1, ("Send error in FindFileDirInfo = %d", rc));
        } else {                /* decode response */
-
+#ifdef CONFIG_CIFS_STATS
+               atomic_inc(&tcon->num_ffirst);
+#endif
                /* BB fill in */
        }
 
@@ -2509,6 +2511,9 @@ findFirstRetry:
                if (rc == -EAGAIN)
                        goto findFirstRetry;
        } else { /* decode response */
+#ifdef CONFIG_CIFS_STATS
+               atomic_inc(&tcon->num_ffirst);
+#endif
                /* BB remember to free buffer if error BB */
                rc = validate_t2((struct smb_t2_rsp *)pSMBr);
                if(rc == 0) {
@@ -2622,6 +2627,9 @@ int CIFSFindNext(const int xid, struct cifsTconInfo *tcon,
                } else
                        cFYI(1, ("FindNext returned = %d", rc));
        } else {                /* decode response */
+#ifdef CONFIG_CIFS_STATS
+               atomic_inc(&tcon->num_fnext);
+#endif
                rc = validate_t2((struct smb_t2_rsp *)pSMBr);
                
                if(rc == 0) {
@@ -2691,6 +2699,9 @@ CIFSFindClose(const int xid, struct cifsTconInfo *tcon, const __u16 searchHandle
        if (rc) {
                cERROR(1, ("Send error in FindClose = %d", rc));
        }
+#ifdef CONFIG_CIFS_STATS
+       atomic_inc(&tcon->num_fclose);
+#endif
        cifs_small_buf_release(pSMB);
 
        /* Since session is dead, search handle closed on server already */
index 22557716f9afb48c032d9c7759706183f01b6a9f..487221eeddb7c1daf34919ee7a3d966348bfdf9c 100644 (file)
@@ -190,8 +190,9 @@ static void fill_in_inode(struct inode *tmp_inode,
                tmp_inode->i_data.a_ops = &cifs_addr_ops;
 
                if(isNewInode)
-                       return; /* No sense invalidating pages for new inode since we
-                                          have not started caching readahead file data yet */
+                       return; /* No sense invalidating pages for new inode
+                                  since have not started caching readahead file
+                                  data yet */
 
                if (timespec_equal(&tmp_inode->i_mtime, &local_mtime) &&
                        (local_size == tmp_inode->i_size)) {
@@ -536,7 +537,8 @@ static int find_cifs_entry(const int xid, struct cifsTconInfo *pTcon,
        while((index_to_find >= cifsFile->srch_inf.index_of_last_entry) && 
              (rc == 0) && (cifsFile->srch_inf.endOfSearch == FALSE)){
                cFYI(1,("calling findnext2"));
-               rc = CIFSFindNext(xid,pTcon,cifsFile->netfid, &cifsFile->srch_inf);
+               rc = CIFSFindNext(xid,pTcon,cifsFile->netfid, 
+                                 &cifsFile->srch_inf);
                if(rc)
                        return -ENOENT;
        }
@@ -555,7 +557,7 @@ static int find_cifs_entry(const int xid, struct cifsTconInfo *pTcon,
                cFYI(1,("found entry - pos_in_buf %d",pos_in_buf)); 
                current_entry = cifsFile->srch_inf.srch_entries_start;
                for(i=0;(i<(pos_in_buf)) && (current_entry != NULL);i++) {
-                       /* go entry to next entry figuring out which we need to start with */
+                       /* go entry by entry figuring out which is first */
                        /* if( . or ..)
                                skip */
                        rc = cifs_entry_is_dot(current_entry,cifsFile);
@@ -721,7 +723,8 @@ static int cifs_filldir(char *pfindEntry, struct file *file,
                              (FILE_DIRECTORY_INFO *)pfindEntry,&obj_type, rc);
        }
        
-       rc = filldir(direntry,qstring.name,qstring.len,file->f_pos,tmp_inode->i_ino,obj_type);
+       rc = filldir(direntry,qstring.name,qstring.len,file->f_pos,
+                    tmp_inode->i_ino,obj_type);
        if(rc) {
                cFYI(1,("filldir rc = %d",rc));
        }
@@ -906,7 +909,8 @@ int cifs_readdir(struct file *file, void *direntry, filldir_t filldir)
                                cifs_save_resume_key(current_entry,cifsFile);
                                break;
                        } else 
-                               current_entry = nxt_dir_entry(current_entry,end_of_smb);
+                               current_entry = nxt_dir_entry(current_entry,
+                                                             end_of_smb);
                }
                kfree(tmp_buf);
                break;
This page took 0.033374 seconds and 5 git commands to generate.