1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-27 00:57:50 +00:00

- Update to 1.7

PR:		ports/106344
Submitted by:	Anish Mistry <amistry@am-productions.biz> (maintainer)
This commit is contained in:
Martin Wilke 2006-12-04 22:29:46 +00:00
parent 91480543db
commit 0a2d3954ff
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=178890
3 changed files with 68 additions and 4 deletions

View File

@ -5,7 +5,7 @@
#
PORTNAME= sshfs
PORTVERSION= 1.6
PORTVERSION= 1.7
CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= fuse

View File

@ -1,3 +1,3 @@
MD5 (sshfs-fuse-1.6.tar.gz) = 04fa75c1357bea362537efe15805e7da
SHA256 (sshfs-fuse-1.6.tar.gz) = 2d8a983c37a1e443bd1ba46a0d68ea3f0b5360471b7d65a0a1a30b745d9e363a
SIZE (sshfs-fuse-1.6.tar.gz) = 98049
MD5 (sshfs-fuse-1.7.tar.gz) = e91a2fed1da952a375798408dc6e41a0
SHA256 (sshfs-fuse-1.7.tar.gz) = 9f39b71d5b247535ac0d44f559125c4e904b0a0303ad5a976161fb3d91807fe1
SIZE (sshfs-fuse-1.7.tar.gz) = 101424

View File

@ -0,0 +1,64 @@
--- sshfs.c.orig Fri Aug 18 10:38:37 2006 +0000
+++ sshfs.c Fri Sep 29 14:22:54 2006 +0000
@@ -147,6 +147,7 @@ struct sshfs_file {
int is_seq;
int connver;
int modifver;
+ int refs;
};
struct sshfs {
@@ -1768,6 +1769,7 @@ static int sshfs_open_common(const char
pthread_cond_init(&sf->write_finished, NULL);
/* Assume random read after open */
sf->is_seq = 0;
+ sf->refs = 1;
sf->next_pos = 0;
sf->modifver= sshfs.modifver;
sf->connver = sshfs.connver;
@@ -1851,6 +1853,19 @@ static int sshfs_fsync(const char *path,
return sshfs_flush(path, fi);
}
+static void sshfs_file_put(struct sshfs_file *sf)
+{
+ sf->refs--;
+ if (!sf->refs)
+ g_free(sf);
+}
+
+static struct sshfs_file *sshfs_file_get(struct sshfs_file *sf)
+{
+ sf->refs++;
+ return sf;
+}
+
static int sshfs_release(const char *path, struct fuse_file_info *fi)
{
struct sshfs_file *sf = get_sshfs_file(fi);
@@ -1861,7 +1876,7 @@ static int sshfs_release(const char *pat
}
buf_free(handle);
chunk_put_locked(sf->readahead);
- g_free(sf);
+ sshfs_file_put(sf);
return 0;
}
@@ -2084,6 +2099,7 @@ static void sshfs_write_end(struct reque
}
list_del(&req->list);
pthread_cond_broadcast(&sf->write_finished);
+ sshfs_file_put(sf);
}
static int sshfs_write(const char *path, const char *wbuf, size_t size,
@@ -2110,7 +2126,7 @@ static int sshfs_write(const char *path,
iov[1].iov_len = size;
if (!sshfs.sync_write && !sf->write_error)
err = sftp_request_send(SSH_FXP_WRITE, iov, 2, sshfs_write_begin,
- sshfs_write_end, 0, sf, NULL);
+ sshfs_write_end, 0, sshfs_file_get(sf), NULL);
else
err = sftp_request_iov(SSH_FXP_WRITE, iov, 2, SSH_FXP_STATUS, NULL);
buf_free(&buf);