s3: leases: Add leases_db_rename() to cope with renaming a leased file.
authorJeremy Allison <jra@samba.org>
Thu, 4 Dec 2014 18:13:47 +0000 (10:13 -0800)
committerJeremy Allison <jra@samba.org>
Fri, 5 Dec 2014 17:37:10 +0000 (18:37 +0100)
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/locking/leases_db.c
source3/locking/leases_db.h

index 67c93ff5c78ed7f87d5fa3e8a8f23d8cd0eef11b..7e000aa07521f490d3d4a3146f3889dc481684af 100644 (file)
@@ -385,3 +385,25 @@ NTSTATUS leases_db_parse(const struct GUID *client_guid,
        }
        return state.status;
 }
+
+NTSTATUS leases_db_rename(const struct GUID *client_guid,
+                      const struct smb2_lease_key *lease_key,
+                      const struct file_id *id,
+                      const char *filename_new,
+                      const char *stream_name_new)
+{
+       NTSTATUS status;
+
+       status = leases_db_del(client_guid,
+                               lease_key,
+                               id);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       return leases_db_add(client_guid,
+                               lease_key,
+                               id,
+                               filename_new,
+                               stream_name_new);
+}
index f57035620462b1a0b5fb8a3b54e49a0c996a79ae..906a99bc6104b5344c4c01562a8643e57e3f2002 100644 (file)
@@ -42,5 +42,9 @@ NTSTATUS leases_db_parse(const struct GUID *client_guid,
                                        const char *stream_name,
                                        void *private_data),
                         void *private_data);
-
+NTSTATUS leases_db_rename(const struct GUID *client_guid,
+                       const struct smb2_lease_key *lease_key,
+                       const struct file_id *id,
+                       const char *filename_new,
+                       const char *stream_name_new);
 #endif /* _LEASES_DB_H_ */