Project

General

Profile

Actions

Support #16884

closed

rename() doesn't work between directories

Added by Donatas Abraitis over 7 years ago. Updated about 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

Tags:
Reviewed:
Affected Versions:
Component(FS):
Labels (FS):
Pull request ID:

Description

Hi folks!

looks like rename() just doesn't work between directories. Here is the snippet FTP daemon does:

#include <stdio.h>

int main() {
int rc = -1;
char *renamefrom = "/home/003/10003/test.jpg";
char *name = "/home/003/10003/public_html/test.jpg";
if (rc = rename(renamefrom, name) < 0) {
printf("%d\n", rc);
}
return 0;
}

In short, no FTP daemons are working due to this issue. Error from FTP daemon:

451 Rename/move failure: Invalid cross-device link

Thank you in advance!
Donatas.


Related issues 2 (0 open2 closed)

Related to CephFS - Bug #39715: client: optimize rename operation under different quota rootResolvedZhi Zhang

Actions
Related to CephFS - Bug #53509: quota support for subvolumegroupResolvedKotresh Hiremath Ravishankar

Actions
Actions #1

Updated by Nathan Cutler over 7 years ago

  • Project changed from Ceph to CephFS
  • Category deleted (11)
Actions #2

Updated by Nathan Cutler over 7 years ago

  • Target version deleted (v10.2.3)
Actions #3

Updated by Greg Farnum over 7 years ago

  • Tracker changed from Bug to Support
  • Priority changed from Urgent to Normal

More details, please. Cross-directory rename definitely works in general. What's the output of "mount"? What versions are you running?

The only place we return EXDEV is if you're trying to rename into a snap directory, or if you have quotas set up and are crossing a "quota root". If that's the case, it's on purpose...(although you could disable the "client quota" config and get around it; I think stuff would repair successfully on subsequent mounts.)

Actions #5

Updated by Donatas Abraitis over 7 years ago

What about removing this block at all? Or is it required too much?

Actions #6

Updated by Donatas Abraitis over 7 years ago

Debug output is:
todir->snapid:-2 todir->quota.is_enable:0 fromdir->snapid:-2 fromdir->quota->max_files:20000 return:-18

Actions #7

Updated by Greg Farnum over 7 years ago

  • Assignee set to Zheng Yan

Zheng, what are the limits and requirements of that quota root EXDEV?

I think it's probably required and can't change, but I could be wrong.

Actions #8

Updated by Donatas Abraitis over 7 years ago

guys, so what's the summary about this 'feature'?

Actions #9

Updated by John Spray over 7 years ago

Donatas: currently, renaming files in and out of trees with different quotas is going to give you EXDEV. You can work around it by either un-setting your quotas (you can always add them back later) or by setting "client quota = false" in your client configuration.

Actions #10

Updated by Zheng Yan about 7 years ago

  • Status changed from New to 4
Actions #11

Updated by Zheng Yan about 7 years ago

  • Status changed from 4 to Closed
Actions #12

Updated by Patrick Donnelly almost 5 years ago

  • Related to Bug #39715: client: optimize rename operation under different quota root added
Actions #13

Updated by Kotresh Hiremath Ravishankar over 2 years ago

  • Related to Bug #53509: quota support for subvolumegroup added
Actions

Also available in: Atom PDF