diff options
author | Tomas Bzatek <tbzatek@redhat.com> | 2012-12-03 15:46:01 +0100 |
---|---|---|
committer | Tomas Bzatek <tbzatek@redhat.com> | 2012-12-03 15:46:01 +0100 |
commit | cf7f98995591f6c992467337469df41756c76b04 (patch) | |
tree | 109e6731eeca12f8dac681db5d1484f863a6a983 /daemon/gvfsbackendsmb.c | |
parent | c2b246c8e9ee67034aa0e0017516bc0f05448783 (diff) | |
download | gvfs-cf7f98995591f6c992467337469df41756c76b04.tar.gz |
smb: Report proper error on do_query_fs_info()
We always reported success despite storing the smb call result.
https://bugzilla.gnome.org/show_bug.cgi?id=687778
Diffstat (limited to 'daemon/gvfsbackendsmb.c')
-rw-r--r-- | daemon/gvfsbackendsmb.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/daemon/gvfsbackendsmb.c b/daemon/gvfsbackendsmb.c index abdab9ca..f69bc1b5 100644 --- a/daemon/gvfsbackendsmb.c +++ b/daemon/gvfsbackendsmb.c @@ -1633,7 +1633,7 @@ do_query_fs_info (GVfsBackend *backend, smbc_statvfs_fn smbc_statvfs; struct statvfs st = {0}; char *uri; - int res; + int res, saved_errno; if (g_file_attribute_matcher_matches (attribute_matcher, G_FILE_ATTRIBUTE_FILESYSTEM_SIZE) || @@ -1645,6 +1645,7 @@ do_query_fs_info (GVfsBackend *backend, uri = create_smb_uri (op_backend->server, op_backend->share, filename); smbc_statvfs = smbc_getFunctionStatVFS (op_backend->smb_context); res = smbc_statvfs (op_backend->smb_context, uri, &st); + saved_errno = errno; g_free (uri); if (res == 0) @@ -1661,6 +1662,11 @@ do_query_fs_info (GVfsBackend *backend, g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, st.f_flag & SMBC_VFS_FEATURE_RDONLY); } } + else + { + g_vfs_job_failed_from_errno (G_VFS_JOB (job), saved_errno); + return; + } } #endif |