diff options
Diffstat (limited to 'fs/cifs/smb1ops.c')
-rw-r--r-- | fs/cifs/smb1ops.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c index 526fb89f9230..d1fdfa848703 100644 --- a/fs/cifs/smb1ops.c +++ b/fs/cifs/smb1ops.c | |||
@@ -372,6 +372,16 @@ coalesce_t2(char *second_buf, struct smb_hdr *target_hdr) | |||
372 | return 0; | 372 | return 0; |
373 | } | 373 | } |
374 | 374 | ||
375 | static void | ||
376 | cifs_downgrade_oplock(struct TCP_Server_Info *server, | ||
377 | struct cifsInodeInfo *cinode, bool set_level2) | ||
378 | { | ||
379 | if (set_level2) | ||
380 | cifs_set_oplock_level(cinode, OPLOCK_READ); | ||
381 | else | ||
382 | cifs_set_oplock_level(cinode, 0); | ||
383 | } | ||
384 | |||
375 | static bool | 385 | static bool |
376 | cifs_check_trans2(struct mid_q_entry *mid, struct TCP_Server_Info *server, | 386 | cifs_check_trans2(struct mid_q_entry *mid, struct TCP_Server_Info *server, |
377 | char *buf, int malformed) | 387 | char *buf, int malformed) |
@@ -1019,6 +1029,7 @@ struct smb_version_operations smb1_operations = { | |||
1019 | .clear_stats = cifs_clear_stats, | 1029 | .clear_stats = cifs_clear_stats, |
1020 | .print_stats = cifs_print_stats, | 1030 | .print_stats = cifs_print_stats, |
1021 | .is_oplock_break = is_valid_oplock_break, | 1031 | .is_oplock_break = is_valid_oplock_break, |
1032 | .downgrade_oplock = cifs_downgrade_oplock, | ||
1022 | .check_trans2 = cifs_check_trans2, | 1033 | .check_trans2 = cifs_check_trans2, |
1023 | .need_neg = cifs_need_neg, | 1034 | .need_neg = cifs_need_neg, |
1024 | .negotiate = cifs_negotiate, | 1035 | .negotiate = cifs_negotiate, |