# [PATCH] lockfile: remove function "hold_lock_file_for_append"

2 messages from 2015-08-28 to 2015-08-28. Participants: Ralf Thielow, Jeff King.
Thread: https://gitlist.dev/t/40208

## Ralf Thielow, 2015-08-28 16:55

Subject: [PATCH] lockfile: remove function "hold_lock_file_for_append"
Message-ID: <1440780952-5859-1-git-send-email-ralf.thielow@gmail.com>
URL: https://gitlist.dev/e/1440780952-5859-1-git-send-email-ralf.thielow%40gmail.com

```
With 77b9b1d (add_to_alternates_file: don't add duplicate entries,
2015-08-10) the last caller of function "hold_lock_file_for_append"
has been removed, so we can remove the function as well.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
---
This is the second bullet point in
http://git-blame.blogspot.de/p/leftover-bits.html

 lockfile.c | 38 --------------------------------------
 lockfile.h | 26 +++++++-------------------
 2 files changed, 7 insertions(+), 57 deletions(-)

diff --git a/lockfile.c b/lockfile.c
index 637b8cf..80d056d 100644
--- a/lockfile.c
+++ b/lockfile.c
@@ -177,44 +177,6 @@ int hold_lock_file_for_update_timeout(struct lock_file *lk, const char *path,
 	return fd;
 }
 
-int hold_lock_file_for_append(struct lock_file *lk, const char *path, int flags)
-{
-	int fd, orig_fd;
-
-	fd = lock_file(lk, path, flags);
-	if (fd < 0) {
-		if (flags & LOCK_DIE_ON_ERROR)
-			unable_to_lock_die(path, errno);
-		return fd;
-	}
-
-	orig_fd = open(path, O_RDONLY);
-	if (orig_fd < 0) {
-		if (errno != ENOENT) {
-			int save_errno = errno;
-
-			if (flags & LOCK_DIE_ON_ERROR)
-				die("cannot open '%s' for copying", path);
-			rollback_lock_file(lk);
-			error("cannot open '%s' for copying", path);
-			errno = save_errno;
-			return -1;
-		}
-	} else if (copy_fd(orig_fd, fd)) {
-		int save_errno = errno;
-
-		if (flags & LOCK_DIE_ON_ERROR)
-			die("failed to prepare '%s' for appending", path);
-		close(orig_fd);
-		rollback_lock_file(lk);
-		errno = save_errno;
-		return -1;
-	} else {
-		close(orig_fd);
-	}
-	return fd;
-}
-
 char *get_locked_file_path(struct lock_file *lk)
 {
 	struct strbuf ret = STRBUF_INIT;
diff --git a/lockfile.h b/lockfile.h
index 8131fa3..3d30193 100644
--- a/lockfile.h
+++ b/lockfile.h
@@ -44,8 +44,7 @@
  *   throughout the life of the program (i.e. you cannot use an
  *   on-stack variable to hold this structure).
  *
- * * Attempts to create a lockfile by calling
- *   `hold_lock_file_for_update()` or `hold_lock_file_for_append()`.
+ * * Attempts to create a lockfile by calling `hold_lock_file_for_update()`.
  *
  * * Writes new content for the destination file by either:
  *
@@ -73,7 +72,7 @@
  * Even after the lockfile is committed or rolled back, the
  * `lock_file` object must not be freed or altered by the caller.
  * However, it may be reused; just pass it to another call of
- * `hold_lock_file_for_update()` or `hold_lock_file_for_append()`.
+ * `hold_lock_file_for_update()`.
  *
  * If the program exits before `commit_lock_file()`,
  * `commit_lock_file_to()`, or `rollback_lock_file()` is called, the
@@ -120,8 +119,7 @@ struct lock_file {
  * Flags
  * -----
  *
- * The following flags can be passed to `hold_lock_file_for_update()`
- * or `hold_lock_file_for_append()`.
+ * The following flags can be passed to `hold_lock_file_for_update()`.
  */
 
 /*
@@ -168,27 +166,17 @@ static inline int hold_lock_file_for_update(
 }
 
 /*
- * Like `hold_lock_file_for_update()`, but before returning copy the
- * existing contents of the file (if any) to the lockfile and position
- * its write pointer at the end of the file. The flags argument and
- * error handling are described above.
- */
-extern int hold_lock_file_for_append(struct lock_file *lk,
-				     const char *path, int flags);
-
-/*
  * Append an appropriate error message to `buf` following the failure
- * of `hold_lock_file_for_update()` or `hold_lock_file_for_append()`
- * to lock `path`. `err` should be the `errno` set by the failing
- * call.
+ * of `hold_lock_file_for_update()` to lock `path`. `err` should be the
+ * `errno` set by the failing call.
  */
 extern void unable_to_lock_message(const char *path, int err,
 				   struct strbuf *buf);
 
 /*
  * Emit an appropriate error message and `die()` following the failure
- * of `hold_lock_file_for_update()` or `hold_lock_file_for_append()`
- * to lock `path`. `err` should be the `errno` set by the failing
+ * of `hold_lock_file_for_update()` to lock `path`. `err` should be the
+ * `errno` set by the failing
  * call.
  */
 extern NORETURN void unable_to_lock_die(const char *path, int err);
-- 
2.5.0.614.g6f325f9

```

## Jeff King, 2015-08-28 17:32

Subject: Re: [PATCH] lockfile: remove function "hold_lock_file_for_append"
Message-ID: <20150828173210.GB9126@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20150828173210.GB9126%40sigill.intra.peff.net
In-Reply-To: <1440780952-5859-1-git-send-email-ralf.thielow@gmail.com>

```
On Fri, Aug 28, 2015 at 06:55:52PM +0200, Ralf Thielow wrote:

> With 77b9b1d (add_to_alternates_file: don't add duplicate entries,
> 2015-08-10) the last caller of function "hold_lock_file_for_append"
> has been removed, so we can remove the function as well.

Heh. I have the same patch, but was holding it back until mh/tempfile
graduated to master, which it did a few days ago.  I diffed mine against
yours, and came up empty aside from one or two minor wrapping choices.

So looks good to me.

-Peff

```
