mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 23:38:50 +03:00
osutil: export a "getfstype" method
This patch exports the "getfstype" method. So we can use it to enable hardlinks for known safe filesystems. The patch was tested manually via debugshell on a Linux system. "mercurial.osutil.getfstype" works as expected. It's hard to mount filesystem on user-space easily. I will add a test for real hardlink support to indirectly test this patch, after turning on real hardlinks support for certain whitelisted filesystems.
This commit is contained in:
parent
57405f31c1
commit
ef355a6e06
@ -1079,6 +1079,20 @@ const char *getfstype(const char *path) {
|
||||
/* End of Linux filesystems */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static PyObject *pygetfstype(PyObject *self, PyObject *args)
|
||||
{
|
||||
const char *path = NULL;
|
||||
if (!PyArg_ParseTuple(args, "s", &path))
|
||||
return NULL;
|
||||
|
||||
const char *type = getfstype(path);
|
||||
if (type == NULL)
|
||||
Py_RETURN_NONE;
|
||||
|
||||
PyObject *result = Py_BuildValue("s", type);
|
||||
return result;
|
||||
}
|
||||
#endif /* def HAVE_STATFS */
|
||||
|
||||
#endif /* ndef _WIN32 */
|
||||
@ -1257,6 +1271,10 @@ static PyMethodDef methods[] = {
|
||||
{"setprocname", (PyCFunction)setprocname, METH_VARARGS,
|
||||
"set process title (best-effort)\n"},
|
||||
#endif
|
||||
#ifdef HAVE_STATFS
|
||||
{"getfstype", (PyCFunction)pygetfstype, METH_VARARGS,
|
||||
"get filesystem type (best-effort)\n"},
|
||||
#endif
|
||||
#endif /* ndef _WIN32 */
|
||||
#ifdef __APPLE__
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user