<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - pulseaudio won't run when home directory is mounted with CIFS"
href="https://bugs.freedesktop.org/show_bug.cgi?id=71649">71649</a>
</td>
</tr>
<tr>
<th>CC</th>
<td>lennart@poettering.net
</td>
</tr>
<tr>
<th>Assignee</th>
<td>pulseaudio-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Summary</th>
<td>pulseaudio won't run when home directory is mounted with CIFS
</td>
</tr>
<tr>
<th>QA Contact</th>
<td>pulseaudio-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux (All)
</td>
</tr>
<tr>
<th>Reporter</th>
<td>maarten256@hotmail.com
</td>
</tr>
<tr>
<th>Hardware</th>
<td>x86 (IA32)
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Component</th>
<td>core
</td>
</tr>
<tr>
<th>Product</th>
<td>PulseAudio
</td>
</tr></table>
<p>
<div>
<pre>I'm fairly sure this is a duplicate of an existing bug as I'm not the first to
experience this issue... However I have not been able to find a record of this
bug on Bugzilla.
When a user's home directory is crossmounted on a linux machine from another
host using CIFS, pulseaudio will not start as pulseaudio cannot set the
necessary permissions on the .config/pulse directory (CIFS doesn't allow
permissions).
I have put together a quick fix that tests whether the filesystem is a CIFS
filesystem, and returns early from the procedure "pa_make_secure_dir" to
prevent pulseaudio to fail:
--- core-util.c 2013-11-14 23:05:47.709911713 -0500
+++ core-util.c.orig 2013-11-14 23:10:28.314384314 -0500
@@ -37,7 +37,6 @@
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <sys/vfs.h>
#include <dirent.h>
#ifdef HAVE_LANGINFO_H
@@ -224,7 +223,6 @@
* already exist, however. */
int pa_make_secure_dir(const char* dir, mode_t m, uid_t uid, gid_t gid, bool
update_perms) {
struct stat st;
- struct statfs stfs;
int r, saved_errno;
bool retry = true;
@@ -283,14 +281,6 @@
if (!update_perms)
return 0;
- if (fstatfs(fd, &stfs) < 0) {
- pa_assert_se(pa_close(fd) >= 0);
- goto fail;
- }
-
- if (stfs.f_type == 0xFF534D42)
- return 0;
-
#ifdef HAVE_FCHOWN
if (uid == (uid_t) -1)
uid = getuid();
I have tested this on my installation (Linux Mint 14 32-bit) and it appears to
work. I don't know how to submit the fix properly so I'm hoping somebody will
see this and help guide me on this.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>