diff options
author | Martin Wilke <miwi@FreeBSD.org> | 2006-12-04 22:29:46 +0000 |
---|---|---|
committer | Martin Wilke <miwi@FreeBSD.org> | 2006-12-04 22:29:46 +0000 |
commit | 0a2d3954ffaf06b9450966b95b3732c9f7eb532a (patch) | |
tree | f6a4bec78db5211f7df89d44b27c418a1472d570 /sysutils/fusefs-sshfs | |
parent | 91480543db573aa08e2750be09341123a3711b23 (diff) | |
download | ports-0a2d3954ffaf06b9450966b95b3732c9f7eb532a.tar.gz ports-0a2d3954ffaf06b9450966b95b3732c9f7eb532a.zip |
Notes
Diffstat (limited to 'sysutils/fusefs-sshfs')
-rw-r--r-- | sysutils/fusefs-sshfs/Makefile | 2 | ||||
-rw-r--r-- | sysutils/fusefs-sshfs/distinfo | 6 | ||||
-rw-r--r-- | sysutils/fusefs-sshfs/files/patch-sshfs.c | 64 |
3 files changed, 68 insertions, 4 deletions
diff --git a/sysutils/fusefs-sshfs/Makefile b/sysutils/fusefs-sshfs/Makefile index e6c8b4290664..352c45ec7300 100644 --- a/sysutils/fusefs-sshfs/Makefile +++ b/sysutils/fusefs-sshfs/Makefile @@ -5,7 +5,7 @@ # PORTNAME= sshfs -PORTVERSION= 1.6 +PORTVERSION= 1.7 CATEGORIES= sysutils MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= fuse diff --git a/sysutils/fusefs-sshfs/distinfo b/sysutils/fusefs-sshfs/distinfo index 74ab5a359d52..f9555beedacd 100644 --- a/sysutils/fusefs-sshfs/distinfo +++ b/sysutils/fusefs-sshfs/distinfo @@ -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 diff --git a/sysutils/fusefs-sshfs/files/patch-sshfs.c b/sysutils/fusefs-sshfs/files/patch-sshfs.c new file mode 100644 index 000000000000..825af6035b37 --- /dev/null +++ b/sysutils/fusefs-sshfs/files/patch-sshfs.c @@ -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);
\ No newline at end of file |