Commit c860a3bd authored by Oleg Drokin's avatar Oleg Drokin Committed by Greg Kroah-Hartman

staging/lustre/obdclass: Remove unused lprocfs_wr_evict_client

This is only used on the servers to evict clients.
Signed-off-by: default avatarOleg Drokin <green@linuxhacker.ru>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 93d3a405
......@@ -612,8 +612,6 @@ int lprocfs_at_hist_helper(struct seq_file *m, struct adaptive_timeout *at);
int lprocfs_rd_timeouts(struct seq_file *m, void *data);
int lprocfs_wr_timeouts(struct file *file, const char __user *buffer,
unsigned long count, void *data);
int lprocfs_wr_evict_client(struct file *file, const char __user *buffer,
size_t count, loff_t *off);
int lprocfs_wr_ping(struct file *file, const char __user *buffer,
size_t count, loff_t *off);
int lprocfs_wr_import(struct file *file, const char __user *buffer,
......
......@@ -1207,55 +1207,6 @@ void ptlrpc_lprocfs_unregister_obd(struct obd_device *obd)
}
EXPORT_SYMBOL(ptlrpc_lprocfs_unregister_obd);
#define BUFLEN (UUID_MAX + 5)
int lprocfs_wr_evict_client(struct file *file, const char __user *buffer,
size_t count, loff_t *off)
{
struct obd_device *obd = ((struct seq_file *)file->private_data)->private;
char *kbuf;
char *tmpbuf;
kbuf = kzalloc(BUFLEN, GFP_NOFS);
if (!kbuf)
return -ENOMEM;
/*
* kzalloc() will zero kbuf, but we only copy BUFLEN - 1
* bytes into kbuf, to ensure that the string is NUL-terminated.
* UUID_MAX should include a trailing NUL already.
*/
if (copy_from_user(kbuf, buffer,
min_t(unsigned long, BUFLEN - 1, count))) {
count = -EFAULT;
goto out;
}
tmpbuf = cfs_firststr(kbuf, min_t(unsigned long, BUFLEN - 1, count));
/* Kludge code(deadlock situation): the lprocfs lock has been held
* since the client is evicted by writing client's
* uuid/nid to procfs "evict_client" entry. However,
* obd_export_evict_by_uuid() will call ldebugfs_remove() to destroy
* the proc entries under the being destroyed export{}, so I have
* to drop the lock at first here.
* - jay, jxiong@clusterfs.com */
class_incref(obd, __func__, current);
if (strncmp(tmpbuf, "nid:", 4) == 0)
obd_export_evict_by_nid(obd, tmpbuf + 4);
else if (strncmp(tmpbuf, "uuid:", 5) == 0)
obd_export_evict_by_uuid(obd, tmpbuf + 5);
else
obd_export_evict_by_uuid(obd, tmpbuf);
class_decref(obd, __func__, current);
out:
kfree(kbuf);
return count;
}
EXPORT_SYMBOL(lprocfs_wr_evict_client);
#undef BUFLEN
int lprocfs_wr_ping(struct file *file, const char __user *buffer,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment