linux/fs/cifs
Shyam Prasad N 1be1fa42eb CIFS: Increment num_remote_opens stats counter even in case of smb2_query_dir_first
The num_remote_opens counter keeps track of the number of open files which must be
maintained by the server at any point. This is a per-tree-connect counter, and the value
of this counter gets displayed in the /proc/fs/cifs/Stats output as a following...

Open files: 0 total (local), 1 open on server
                             ^^^^^^^^^^^^^^^^
As a thumb-rule, we want to increment this counter for each open/create that we
successfully execute on the server. Similarly, we should decrement the counter when
we successfully execute a close.

In this case, an increment was being missed in case of smb2_query_dir_first,
in case of successful open. As a result, we would underflow the counter and we
could even see the counter go to negative after sufficient smb2_query_dir_first calls.

I tested the stats counter for a bunch of filesystem operations with the fix.
And it looks like the counter looks correct to me.

I also check if we missed the increments and decrements elsewhere. It does not
seem so. Few other cases where an open is done and we don't increment the counter are
the compound calls where the corresponding close is also sent in the request.

Signed-off-by: Shyam Prasad N <nspmangalore@gmail.com>
CC: Stable <stable@vger.kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
2020-03-17 13:27:03 -05:00
..
asn1.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cache.c cifs: use 64-bit timestamps for fscache 2018-08-07 14:15:41 -05:00
cifs_debug.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
cifs_debug.h cifs: add a debug macro that prints \\server\share for errors 2019-09-16 11:43:38 -05:00
cifs_dfs_ref.c cifs: fix potential mismatch of UNC paths 2020-02-24 14:20:38 -06:00
cifs_fs_sb.h smb3: add mount option to allow RW caching of share accessed by only 1 client 2019-09-16 11:43:38 -05:00
cifs_ioctl.h cifs: add SMB3 change notification support 2020-02-06 09:14:28 -06:00
cifs_spnego.c cifs: switch servers depending on binding state 2019-11-25 01:16:30 -06:00
cifs_spnego.h
cifs_unicode.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cifs_unicode.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cifs_uniupr.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cifsacl.c cifs: Fix mode output in debugging statements 2020-02-12 22:24:26 -06:00
cifsacl.h smb3: fix mode passed in on create for modetosid mount option 2019-12-06 14:15:52 -06:00
cifsencrypt.c fs: cifs: switch to RC4 library interface 2019-06-20 14:19:55 +08:00
cifsfs.c cifs: add missing mount option to /proc/mounts 2020-02-24 14:20:38 -06:00
cifsfs.h cifs: update internal module version number 2020-01-31 15:13:22 -06:00
cifsglob.h cifs: fix rename() by ensuring source handle opened with DELETE bit 2020-02-24 14:20:38 -06:00
cifspdu.h smb3: missing defines and structs for reparse point handling 2018-11-02 14:09:41 -05:00
cifsproto.h cifs: fix rename() by ensuring source handle opened with DELETE bit 2020-02-24 14:20:38 -06:00
cifsroot.c cifs: cifsroot: add more err checking 2019-09-16 11:43:39 -05:00
cifssmb.c cifs: fix rename() by ensuring source handle opened with DELETE bit 2020-02-24 14:20:38 -06:00
connect.c cifs: Fix mode output in debugging statements 2020-02-12 22:24:26 -06:00
dfs_cache.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
dfs_cache.h proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
dir.c cifs_atomic_open(): fix double-put on late allocation failure 2020-03-12 18:25:20 -04:00
dns_resolve.c keys: Pass the network namespace into request_key mechanism 2019-06-27 23:02:12 +01:00
dns_resolve.h
export.c docs: fs: convert docs without extension to ReST 2019-07-31 13:31:05 -06:00
file.c cifs: fix rename() by ensuring source handle opened with DELETE bit 2020-02-24 14:20:38 -06:00
fscache.c cifs: use 64-bit timestamps for fscache 2018-08-07 14:15:41 -05:00
fscache.h cifs: use 64-bit timestamps for fscache 2018-08-07 14:15:41 -05:00
inode.c cifs: potential unintitliazed error code in cifs_getattr() 2020-03-17 13:26:26 -05:00
ioctl.c cifs: add SMB3 change notification support 2020-02-06 09:14:28 -06:00
Kconfig various cifs/smb3 fixes (including for share deleted cases) and features including improved encrypted read performance, and various debugging improvements 2019-09-19 10:32:16 -07:00
link.c SMB3: Backup intent flag missing from some more ops 2020-02-03 16:12:47 -06:00
Makefile cifs: Add support for root file systems 2019-09-16 11:43:38 -05:00
misc.c CIFS: Properly process SMB3 lease breaks 2019-11-25 01:17:12 -06:00
netmisc.c fs: cifs: mute -Wunused-const-variable message 2019-10-06 22:04:35 -05:00
nterr.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
nterr.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
ntlmssp.h cifs: dynamic allocation of ntlmssp blob 2016-06-23 23:45:07 -05:00
readdir.c cifs: fix mode bits from dir listing when mounted with modefromsid 2020-02-06 17:19:38 -06:00
rfc1002pdu.h
sess.c cifs: make multichannel warning more visible 2020-02-06 09:12:16 -06:00
smb1ops.c cifs: fix rename() by ensuring source handle opened with DELETE bit 2020-02-24 14:20:38 -06:00
smb2file.c cifs: Adjust indentation in smb2_open_file 2019-12-23 09:04:44 -06:00
smb2glob.h cifs: change SMB2_OP_RENAME and SMB2_OP_HARDLINK to use compounding 2018-10-23 21:16:04 -05:00
smb2inode.c cifs: fix rename() by ensuring source handle opened with DELETE bit 2020-02-24 14:20:38 -06:00
smb2maperror.c smb3: improve handling of share deleted (and share recreated) 2019-09-16 11:43:38 -05:00
smb2misc.c cifs: Fix memory allocation in __smb2_handle_cancelled_cmd() 2020-01-26 19:24:17 -06:00
smb2ops.c CIFS: Increment num_remote_opens stats counter even in case of smb2_query_dir_first 2020-03-17 13:27:03 -05:00
smb2pdu.c cifs: fix rename() by ensuring source handle opened with DELETE bit 2020-02-24 14:20:38 -06:00
smb2pdu.h smb3: Add defines for new information level, FileIdInformation 2020-02-06 17:32:24 -06:00
smb2proto.h SMB3: Backup intent flag missing from some more ops 2020-02-03 16:12:47 -06:00
smb2status.h cifs: don't use __constant_cpu_to_le32() 2019-05-07 23:24:54 -05:00
smb2transport.c cifs: fix channel signing 2020-02-06 12:42:36 -06:00
smbdirect.c cifs: smbd: Only queue work for error recovery on memory registration 2019-11-25 01:16:30 -06:00
smbdirect.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
smbencrypt.c fs: cifs: move from the crypto cipher API to the new DES library interface 2019-08-22 14:57:34 +10:00
smberr.h
smbfsctl.h smb3: Add missing reparse tags 2019-09-24 23:31:32 -05:00
trace.c smb3: Cleanup license mess 2019-01-24 09:37:33 -06:00
trace.h cifs: Add tracepoints for errors on flush or fsync 2020-02-05 18:24:19 -06:00
transport.c CIFS: Fix task struct use-after-free on reconnect 2020-01-26 19:24:17 -06:00
winucase.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
xattr.c CIFS: Add support for setting owner info, dos attributes, and create time 2020-01-26 19:24:17 -06:00