30
32
struct gfs2_block_query q = {0};
32
log_info("Locating/Creating lost and found directory\n");
34
log_info( _("Locating/Creating lost and found directory\n"));
34
36
lf_dip = createi(ip->i_sbd->md.rooti, "lost+found", S_IFDIR | 0700, 0);
35
37
if(gfs2_block_check(ip->i_sbd, bl, lf_dip->i_di.di_num.no_addr, &q)) {
56
58
if(ip->i_di.di_num.no_addr == lf_dip->i_di.di_num.no_addr) {
57
log_err("Trying to add lost+found to itself...skipping");
59
log_err( _("Trying to add lost+found to itself...skipping"));
60
62
switch(ip->i_di.di_mode & S_IFMT){
62
log_info("Adding .. entry pointing to lost+found for %"PRIu64"\n",
63
ip->i_di.di_num.no_addr);
64
log_info( _("Adding .. entry pointing to lost+found for %llu\n"),
65
(unsigned long long)ip->i_di.di_num.no_addr);
64
66
sprintf(tmp_name, "..");
65
67
filename_len = strlen(tmp_name); /* no trailing NULL */
66
68
if(!(filename = malloc((sizeof(char) * filename_len) + 1))) {
67
log_err("Unable to allocate name\n");
69
log_err( _("Unable to allocate name\n"));
71
73
if(!memset(filename, 0, (sizeof(char) * filename_len) + 1)) {
72
log_err("Unable to zero name\n");
74
log_err( _("Unable to zero name\n"));
76
78
memcpy(filename, tmp_name, filename_len);
78
80
if(gfs2_dirent_del(ip, NULL, filename, filename_len))
79
log_warn("add_inode_to_lf: "
80
"Unable to remove \"..\" directory entry.\n");
81
log_warn( _("add_inode_to_lf: "
82
"Unable to remove \"..\" directory entry.\n"));
82
84
dir_add(ip, filename, filename_len, &(lf_dip->i_di.di_num), DT_DIR);
124
126
filename_len = strlen(tmp_name); /* no trailing NULL */
125
127
if(!(filename = malloc(sizeof(char) * filename_len))) {
126
log_err("Unable to allocate name\n");
128
log_err( _("Unable to allocate name\n"));
130
132
if(!memset(filename, 0, sizeof(char) * filename_len)) {
131
log_err("Unable to zero name\n");
133
log_err( _("Unable to zero name\n"));
140
142
increment_link(ip->i_sbd, lf_dip->i_di.di_num.no_addr);
143
log_notice("Added inode #%"PRIu64" to lost+found dir\n",
144
ip->i_di.di_num.no_addr);
145
log_notice( _("Added inode #%llu to lost+found dir\n"),
146
(unsigned long long)ip->i_di.di_num.no_addr);