@@ -702,6 +702,13 @@ cifs_find_lock_conflict(struct cifsInodeInfo *cinode, struct cifsLockInfo *lock,
702
702
lock -> type , lock -> netfid , conf_lock );
703
703
}
704
704
705
+ /*
706
+ * Check if there is another lock that prevents us to set the lock (mandatory
707
+ * style). If such a lock exists, update the flock structure with its
708
+ * properties. Otherwise, set the flock type to F_UNLCK if we can cache brlocks
709
+ * or leave it the same if we can't. Returns 0 if we don't need to request to
710
+ * the server or 1 otherwise.
711
+ */
705
712
static int
706
713
cifs_lock_test (struct cifsInodeInfo * cinode , __u64 offset , __u64 length ,
707
714
__u8 type , __u16 netfid , struct file_lock * flock )
@@ -739,6 +746,12 @@ cifs_lock_add(struct cifsInodeInfo *cinode, struct cifsLockInfo *lock)
739
746
mutex_unlock (& cinode -> lock_mutex );
740
747
}
741
748
749
+ /*
750
+ * Set the byte-range lock (mandatory style). Returns:
751
+ * 1) 0, if we set the lock and don't need to request to the server;
752
+ * 2) 1, if no locks prevent us but we need to request to the server;
753
+ * 3) -EACCESS, if there is a lock that prevents us and wait is false.
754
+ */
742
755
static int
743
756
cifs_lock_add_if (struct cifsInodeInfo * cinode , struct cifsLockInfo * lock ,
744
757
bool wait )
@@ -778,6 +791,13 @@ cifs_lock_add_if(struct cifsInodeInfo *cinode, struct cifsLockInfo *lock,
778
791
return rc ;
779
792
}
780
793
794
+ /*
795
+ * Check if there is another lock that prevents us to set the lock (posix
796
+ * style). If such a lock exists, update the flock structure with its
797
+ * properties. Otherwise, set the flock type to F_UNLCK if we can cache brlocks
798
+ * or leave it the same if we can't. Returns 0 if we don't need to request to
799
+ * the server or 1 otherwise.
800
+ */
781
801
static int
782
802
cifs_posix_lock_test (struct file * file , struct file_lock * flock )
783
803
{
@@ -800,6 +820,12 @@ cifs_posix_lock_test(struct file *file, struct file_lock *flock)
800
820
return rc ;
801
821
}
802
822
823
+ /*
824
+ * Set the byte-range lock (posix style). Returns:
825
+ * 1) 0, if we set the lock and don't need to request to the server;
826
+ * 2) 1, if we need to request to the server;
827
+ * 3) <0, if the error occurs while setting the lock.
828
+ */
803
829
static int
804
830
cifs_posix_lock_set (struct file * file , struct file_lock * flock )
805
831
{
0 commit comments