Loading fs/nfsd/nfsctl.c +17 −12 Original line number Original line Diff line number Diff line Loading @@ -1203,26 +1203,36 @@ static ssize_t write_maxblksize(struct file *file, char *buf, size_t size) } } #ifdef CONFIG_NFSD_V4 #ifdef CONFIG_NFSD_V4 static ssize_t __write_leasetime(struct file *file, char *buf, size_t size) static ssize_t __nfsd4_write_time(struct file *file, char *buf, size_t size, time_t *time) { { /* if size > 10 seconds, call /* if size > 10 seconds, call * nfs4_reset_lease() then write out the new lease (seconds) as reply * nfs4_reset_lease() then write out the new lease (seconds) as reply */ */ char *mesg = buf; char *mesg = buf; int rv, lease; int rv, i; if (size > 0) { if (size > 0) { if (nfsd_serv) if (nfsd_serv) return -EBUSY; return -EBUSY; rv = get_int(&mesg, &lease); rv = get_int(&mesg, &i); if (rv) if (rv) return rv; return rv; if (lease < 10 || lease > 3600) if (i < 10 || i > 3600) return -EINVAL; return -EINVAL; nfsd4_lease = lease; *time = i; } } return scnprintf(buf, SIMPLE_TRANSACTION_LIMIT, "%ld\n", nfsd4_lease); return scnprintf(buf, SIMPLE_TRANSACTION_LIMIT, "%ld\n", *time); } static ssize_t nfsd4_write_time(struct file *file, char *buf, size_t size, time_t *time) { ssize_t rv; mutex_lock(&nfsd_mutex); rv = __nfsd4_write_time(file, buf, size, time); mutex_unlock(&nfsd_mutex); return rv; } } /** /** Loading @@ -1248,12 +1258,7 @@ static ssize_t __write_leasetime(struct file *file, char *buf, size_t size) */ */ static ssize_t write_leasetime(struct file *file, char *buf, size_t size) static ssize_t write_leasetime(struct file *file, char *buf, size_t size) { { ssize_t rv; return nfsd4_write_time(file, buf, size, &nfsd4_lease); mutex_lock(&nfsd_mutex); rv = __write_leasetime(file, buf, size); mutex_unlock(&nfsd_mutex); return rv; } } extern char *nfs4_recoverydir(void); extern char *nfs4_recoverydir(void); Loading Loading
fs/nfsd/nfsctl.c +17 −12 Original line number Original line Diff line number Diff line Loading @@ -1203,26 +1203,36 @@ static ssize_t write_maxblksize(struct file *file, char *buf, size_t size) } } #ifdef CONFIG_NFSD_V4 #ifdef CONFIG_NFSD_V4 static ssize_t __write_leasetime(struct file *file, char *buf, size_t size) static ssize_t __nfsd4_write_time(struct file *file, char *buf, size_t size, time_t *time) { { /* if size > 10 seconds, call /* if size > 10 seconds, call * nfs4_reset_lease() then write out the new lease (seconds) as reply * nfs4_reset_lease() then write out the new lease (seconds) as reply */ */ char *mesg = buf; char *mesg = buf; int rv, lease; int rv, i; if (size > 0) { if (size > 0) { if (nfsd_serv) if (nfsd_serv) return -EBUSY; return -EBUSY; rv = get_int(&mesg, &lease); rv = get_int(&mesg, &i); if (rv) if (rv) return rv; return rv; if (lease < 10 || lease > 3600) if (i < 10 || i > 3600) return -EINVAL; return -EINVAL; nfsd4_lease = lease; *time = i; } } return scnprintf(buf, SIMPLE_TRANSACTION_LIMIT, "%ld\n", nfsd4_lease); return scnprintf(buf, SIMPLE_TRANSACTION_LIMIT, "%ld\n", *time); } static ssize_t nfsd4_write_time(struct file *file, char *buf, size_t size, time_t *time) { ssize_t rv; mutex_lock(&nfsd_mutex); rv = __nfsd4_write_time(file, buf, size, time); mutex_unlock(&nfsd_mutex); return rv; } } /** /** Loading @@ -1248,12 +1258,7 @@ static ssize_t __write_leasetime(struct file *file, char *buf, size_t size) */ */ static ssize_t write_leasetime(struct file *file, char *buf, size_t size) static ssize_t write_leasetime(struct file *file, char *buf, size_t size) { { ssize_t rv; return nfsd4_write_time(file, buf, size, &nfsd4_lease); mutex_lock(&nfsd_mutex); rv = __write_leasetime(file, buf, size); mutex_unlock(&nfsd_mutex); return rv; } } extern char *nfs4_recoverydir(void); extern char *nfs4_recoverydir(void); Loading